トレジャーデータのバッチクエリとアドホッククエリを理解する1
本記事は移転しました。新サイトにリダイレクトします。
トレジャーデータはクラウドでデータマネージメントサービスを提供しています。
本シリーズではトレジャーデータのクエリエンジンについて紹介します。無尽蔵のトレジャークラウドストレージに対する集計方法は,HiveベースのバッチクエリとPrestoベースのアドホッククエリがあります。
これら2つはお互いを補完しあうような存在であり,ケースによって使い分ける事が肝要です。
トレジャーデータのバッチクエリとアドホッククエリを理解する1,2,3
1. バッチクエリ v.s. アドホッククエリ
今回はバッチ型・アドホック型クエリの特徴を紹介します。
バッチ型もアドホック型も共にSQLライクのクエリによってデータ処理が可能になっています。大きな違いは,バッチクエリはデータソースに対して大規模な並列分散処理を行うのに対し,アドホッククエリは小規模の結果が得られる処理に対して高速にレスポンスを返すところです。
Map Reduce はノード間の Map, Reduce の相互イテレーションの際に中間データをディスクに一端書き込みます。一方でPrestoの方は Task と呼ばれる処理単位でのイテレーションとなりますが,メモリ上に中間データを保持することでディスクIOが発生しないことが高速処理が可能な理由です。しかし,中間データがメモリ上に乗り切らない場合はPrestoの方は処理が失敗してします可能性があります。Presto についての詳細は以下の記事をご参照下さい。
『Prestoとは何か,Prestoで何ができるか』 - トレジャーデータ(Treasure Data)公式ブログ
また,分析スキームにおいても2つのクエリは区別することが可能です。
マネジメントコンソールからのクエリ実行
上記デモムービーの 00:50 の辺りから同じクエリに対して,バッチ型(Hive),アドホック型(Presto)で実行した際のレスポンスの違いを紹介しています。以下はスクリーンキャプチャです。
次回はバッチ型クエリについて,ユースケースや相性の良い可視化ツール等の紹介を通じて,バッチ型の使いどころを見極めて行きましょう。
トレジャーデータに関するお問い合わせは support@treasure-data.com まで。