トレジャーデータ(Treasure Data)ブログ

トレジャーデータ(Treasure Data)ブログです。

本サイトは移転しました。新サイトにリダイレクトします。

(2014年総集編3)アドホッククエリーの登場,大規模データセットに対しても高速なレスポンスを実現

本記事は移転しました。新サイトにリダイレクトします。

はじめに

トレジャーデータはクラウドでデータマネージメントサービスを提供しています。

 

「Treasure Query Accelerator: アドホッククエリー」の登場は「クエリーを実行したその場で結果が返ってくる」という,一見当たり前のような,しかしバッチクエリーでは困難だったことを可能にしました。これによってTreasure Data Service(トレジャーデータサービス)の活用シーンが大きく広がりました。以下のテーブルはバッチ型とアドホック型の比較をしています。ここで重要なことは,双方お互いにメリット・デメリットがあるということで,必ずしもすべてのシーンでアドホック型への置き換えができないということです。

 バッチ型クエリー
(Hive)
アドホック型クエリー
(Presto)
言語 ・HiveQL (SQL Like) ・SQL-92準拠
ケース ・大規模な中間処理データの受け渡しが生じる並列処理に対して ・大規模なインプットでも,中間処理・結果データが小さくて済む並列処理に対して
計算モデル ・Map Reduce ・MPP
(Massively Parallel Processor)
業務領域 ・KPIダッシュボード
・定型レポーティング
・インタラクティブなデータ処理
・特定のユーザーの履歴抽出などのサポーティング業務
相性のよい
可視化ツール
・Metric Insights
・Tableau Server
・Chartio
・Tableau Desktop
トレジャー
料金プラン
・Basic Plan ・Premium Plan

以下で詳細を述べていきます。

1. 言語 

Treasure Data Serviceは,バッチ型とアドホック型の双方にSQLライクなクエリーを記述できるという統一性を有しています。つまり同じデータセットの同じ処理に対して,バッチかアドホックかを柔軟に切り替えることができるのです。

トレジャー管理コンソールからクエリーを実行する場合の使い分け方は,バッチ型(Hive)/ アドホック型(Presto)をボタンで切り替えるだけです。 

f:id:treasure-data:20141224111852p:plain

 2. ケース

バッチ処理は,データ同士の結合をする場合(中間生成データが巨大になる),巨大なデータセットに対する重い集計の際に頼もしい存在です。また,分散処理の途中でのエラーに対してもリトライを行ってくれますし,計算ノード間の中間データの受け渡しも安全に行ってくれます。そういう安定性は,デイリーで自動実行する定時ジョブへの安心感につながります。

バッチ処理のイメージ:たくさんのショベルカーのある巨大な砂場を想像してください。重めのクエリーが実行されると,複数のショベルカーのエンジンに火が入り,自分の持ち場の砂をどっさりとつかんでは次の砂場に運んでいきます。重厚なマシンなのでエンジンがかかる(イニシャルランニングタイム)までに時間がかかりますが,動き出してしまえばどんな砂場であっても安定して働いてくれます。

一方で,アドホッククエリーは,中間データと結果がサーバーのメモリに乗り切る程度の軽い処理に対して数秒のレスポンスを実現します。巨大なデータセットに対するアドホッククエリーの登場は,すぐに結果を見たいアドホックな分析処理や,そもそも結果が正しいかどうかを知るための試行錯誤など,現場から求められるアドホックな業務をこなすのに適しています。

f:id:treasure-data:20141224112614p:plain

また,TableauなどのBI(ビジネスインテリジェンス)ツールとトレジャーデータストレージをアドホッククエリーで接続することによって,BIツール上からドリルダウンやクロステーブル作成などのインタラクティブな操作が可能になります。これは非常にインパクトのあることで,SQLの知識がない分析者やディレクターでも,BIツールからマウスのクリック・ドラッグ操作だけでTreasure Data Serviceが扱えるようになります。

アドホッククエリーのイメージ:広大なサーキットを縦横無尽に走り回るミニ四駆を想像してください。重いものは載せられませんが,スイッチを入れればすぐに走り出す起動速度とデータサーキットを超高速に駆け抜ける爽快さは,分析者にとって最高の相棒となるでしょう。

3. 計算モデル

バッチクエリーがHiveに準じたMap Reduceを行うのに対し,アドホッククエリーはMPPモデルを採用しています。

f:id:treasure-data:20141224112850p:plain

これらの計算モデルを理解する必要はありませんが,アドホッククエリーはサーバー間の中間データの受け渡しをメモリ上で行うので,メモリに乗り切らない場合はエラーとなってしまうことに留意してください。

4. 相性のよい可視化ツール

バッチ型/アドホック型それぞれに最適な可視化ツールを紹介します。

A) バッチ型:Metric Insights, Tableau Server

Metric Insights:

トレジャーデータがOEM提供するMetric Insightsは,当社のオンラインゲームソリューションに採用されているバッチ処理と相性のよいツールです。

f:id:treasure-data:20141224113624p:plain

↑ Metric Insightsではおのおののウィジェットが独立しており,ウィジェット編集画面から,クエリー,実行インターバル,チャートタイプの3種を指定することで自動的にクエリーを実行し,ウィジェットに反映してくれます。

Tableau Server:

Treasure Data Serviceは集計結果のエクスポート先を多種用意していますが,その1つにTableau Server があります。Tableau ServerはTableau Desktopで作成したレポートをTableau Serverにパブリッシュすることで,タブレットなどのさまざまな端末からそのレポートを参照できるようになります。

f:id:treasure-data:20141224113944p:plain

定型レポートを一度Tableau Desktopで作成してしまえば,以後はTreasure Data Serviceが定時集計してTableau Serverに自動追記してくれます。いつでも新鮮なレポートが参照できることになります。

B) アドホック型:Tableau Desktop

Tableau Desktop:

Tableau Desktop はWindows および Mac のクライアントソフトウェアとして動作する可視化のバリエーションに富んだBIツールです。Treasure Data ServiceはこのようなBIツールに対する接続口(ODBC, JDBCドライバ)を用意することで,BIツールの画面上からTreasure Data Service上のデータ操作が可能になるというSQLレスな環境を実現できます。

f:id:treasure-data:20141224114145p:plain

5. プランについて

バッチクエリーはTreasure Data Serviceのスタンダードプランに含まれますが,アドホッククエリーはプレミアムプランのみに含まれる付加機能となります。料金に関するお問い合わせは support@treasure-data.com までお願いします。