#garagekidztweetz

読者です 読者をやめる 読者になる 読者になる

#garagekidztweetz

id:garage-kid@76whizkidz のライフログ・ブログ!

#hcj2014 Apache Drill: Building Highly Flexible, High Performance Query Engines のメモ

hcj2014 hcj hadoop lifelog

f:id:garage-kid:20140707215911p:plain

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)

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 の個人参加レポート
各セッションの個人メモ

*1:英語のセッションはスライドも英語にわたしはしてほしい。混乱するので。