Go ahead!

Memoization for Everything

Tokyo Apache Drill Meetup 第一回

| Comments

上のイベントに参加してました.普通の感想は他の人が書くと思うので,質問した内容とその返答を書いておきます.

スキーマを自動検出するけど,途中で変わったらどうなるの?

現状はエラーになる.

DrillはSchema on Readに加えて,データ読み込み時にスキーマを自動で生成する機能もある(Embulkのguessみたいなもの).JSONとかのローカルファイルに対してクエリ投げる時は,いちいちスキーマを自分で設定する必要がなくて便利なのだけど,さすがに後半のデータで急に型が変わったりフィールドが増えたりすると,クエリ処理を続行できないとのこと.
そういう時はちゃんとスキーマを事前に定義する必要がある

クエリ毎のリソース制御ってどうしてるの?

現状その手の機能はない.並行で処理するクエリの数は制限できる.

Prestoだとクエリ毎にメモリ使用量とかを制限できて,それによってどれだけクエリが投げられても,ワーカー群はかなり安定して処理を実行できるようになっている.現状のDrillユーザは,あらかじめどれだけメモリを使うかなどを測定して,それに見合ったクラスタを構築しているらしい.

大きいDrillクラスタって今どれくらい?

1クラスタ100台の事例はある,とのこと.

Prestoだと1クラスタ1000台とかの事例はあるけど,これを聞く限りまだ大規模での事例はそこまでないようだ.ここは後発なのものあって,今後事例は出てくるかもしれないが,上で言及したリソース制御とかがないと,大規模での運用は結構厳しそう.

分析系の関数やWindow関数がほとんどないようだけど,今どうやって解析してるの?

Window関数相当のSQLを頑張って書いているか,自分達でDrillを拡張しているかのどちらか.

Drillは現状の1.1だと,Window関数とかはあまりサポートされてなくて,Presto/Impalaで使える便利関数群が色々と使えない.今Drillを採用している人達はどうやって様々な分析をやっているのか,というのは運用・自社開発でカバーという感じらしい.この辺がこなれないと,普通の人達が使うのは結構厳しい感じ.


上がMapRの人達に聞いた内容.後発なのでPrestoなどの良いところを取り込んでいるものの,まだ成熟してない感じなので,プロダクションで使うには運用でカバーしないといけない箇所が結構あるなぁという.
ApacheプロジェクトだしMapRがかなり開発リソースを割いてる感じなので,上記の問題群はいずれ解決されるだろうとは思いますが,Presto/Impalaもかなり開発が活発なので,どこまで差別化出来るのかが今後の注目ポイントになりそう.

俺も時間を作って色々とチェックしてみるか…

Comments