http://pixabay.com/en/the-elephant-cub-tsavo-kenya-175798/
Hadoop Confence Japan 2014 参加レポートエントリ、5発目は 「 Apache Drill 」の話を聞いてきました。
正直論点があまりよくわからなかったのと、英語で話して、スライド日本語という形だった *1 こと、ページ送りも速かったので、今回わたしが参加した中では一番、印象がよくないセッションだったんですが、最後の QA で MapR はすべての SQL on Hadoop をサポートする(遠巻きにそういってた)から察するに、 Drill 云々というより「 MapR 最高!使ってね!」ということだったのだという個人的理解をしました。
主にページ送りが速かったのでメモの体をなしてないところもありますが、、、、以降がわたしのメモです。
15:40- Apache Drill: Building Highly Flexible, High Performance Query Engines M.C. Srivas 氏 (MapR)
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility or Performance - 2014/07/08 Hadoop Conference Japan 2014 from MapR Technologies Japan
introduction of MapR
Why Hadoop?
- Integrated predefined schema is difficult.
- because of SILOS
- hard to know the value infront.
Rethink SQL for Bigdata.
- 新しく創出
- データモデルの柔軟性
- 半構造化データのサポート
- アジリティ
- スケーラビリティ
- データモデルの柔軟性
- 自己表現型(?) のデータが一般的になってきている
- HBase, mongoDB
Apache Drill クイックツアー
- データソースはクエリの中で指定
- DFS, HBase, Hive metastore
- workspace
- テーブル
- データソースを直接組み合わせる
- JSON
- csv
- ORC
- Parquet
- HBase テーブル
- ディレクトリツリー全体も処理可能
- ネストデータに対する直接クエリ
- JSON, Parquet, etc...
- SQL または Fluent API を使った複雑なデータ処理
- 埋め込みデータに対してのクエリ実行
- e.g. HBase テーブル donuts の CF cf1 の Column donuts-json 内部に埋め込まれた JSON 値を処理する
- JSON レコード内部へのクエリ
- 各 JSON レコード自体をひとつの DB として扱える
- クエリ処理の途中でスキーマが変わる可能性がある
- スキーマ変更イベンドによりオペレータの再構成ができるようになっている
- メタデータは中央管理ではない
- 顧客データは Hive 、ツイートデータは HBase とかできる
内部のしくみ
- 基本的な処理の流れ
- クエリがいずれかの Drillbit にとうちゃく
- Drillbit はクエリ最適化、ローカリティに基づき実行計画
- ... 書ききれなかった
クエリエンジンの特徴
- カラム型, ベクトル化
- ... スライド回しが速くて書ききれない
カラムナエンコーディング
- カラム内の値を隣り合わせで格納
- 高い圧縮効率
- レンジマップ
ランレングスエンコーディング & 合計の計算
ビットパックディクショナリソート
Drill の 4 値セマンティックス
値のバッチ
- Value Vector
- バッチ単位で送信される
ベクトル化
- Drill は複数のレコードを同時に処理する
高速なランタイムコンパイラ
- Janino
Drill コンパイラ
楽観的実行
- 復旧のコーディングが容易
- パイプライン化が可能
パイプライン化
- Record Batch のパイプライン化
- ランダムアクセス
- シリアライズ、デシリアライズを避ける
- オフヒープ
- Full specification + オフヒープ + Batch
- Disk への RW
- データがメモリより大きい場合
コストベース最適化
- Optiq を利用
分散実行のコスト
Summary
- Drill
- フレキシブルなスキーマ管理
- ネストデータに対する効率的な分析
- 既存資産とのプラグアンドプレイ
- BI tool, Hive
Roadmap
SQL on Hadoop の選択肢
- Drill
- Hive
- Impala
- SparkSQL
活発な Drill Community
- というが、、、、正直そういう印象はこのセッションの内容からだと受けづらいな、と。
QA
MapR support most of SQL on Hadoop, but actually focus most on Drill?
- No(?), actually support all of them.
本セッションのメモは以上です。 では、また次のセッションのレポートで・・・
あわせて読まれたい
#hcj2014 の個人参加レポート
各セッションの個人メモ
- 10:00- Hadoop Conference Japan 2014 Keynote.
- 13:00- リクルート式Hadoopの使い方 3rd Edition 石川 信行氏(リクルートテクノロジーズ)
- 13:50- SQLによるバッチ処理とストリーム処理 田籠 聡氏 (LINE)
- 14:40- A Deeper Understanding of Spark Internals Patrick Wendell 氏(Databricks)
- 16:30- Evolution of Impala - Hadoop 上の高速SQLエンジン、最新情報 嶋内 翔氏(Cloudera)
- 17:20- 並列SQLエンジンPresto - 大規模データセットを高速にグラフ化する方法 古橋 貞之氏(Treasure Data)
*1:英語のセッションはスライドも英語にわたしはしてほしい。混乱するので。