ビッグデータしないDrill、ローカルで快適に使うために
ビッグデータしないDrill、ローカルで快適に使うために
Tokyo Apache Drill Meetup
2016-03-22
About Me
- κeen
- @blackenedgold
- Github: KeenS
- Lisp, ML, Rust, Shell Scriptあたりを書きます
- サイバーエージェントのエンジニア
- アドテクスタジオ所属
- データエンジニアじゃなくてもデータを触ることはある
なぜローカルか
- ビッグデータ重い
- 使いたいデータが絞れる時には大袈裟
- 「売り上げ上位1000のユーザの行動」とか
- 同じようなクエリの重複
- 新しいテーブル作れないDBとかview作れないDBとか
- 結果をRに渡したりとかが面倒
- CSVダウンロードがGUI
キャッシュ的な
+---------------------------------+
| BIG DATA (BigQuery, Spark, etc) |
+---------------------------------+
^ | ^ |
| | | |
| v | v
+-------------------+
| ローカルキャッシュ | <- ???
+-------------------+
^ | ^ | ^ | ^ |
| v | v | v | |
+----------+ |
| 自分 | |
+----------+ v
+---+ +-----+
| R | <--| CSV |
+---+ +-----+
やりたいこと
- パパッっと処理を始められる
- だいたい「CSVを簡単に読める」に同じ
- たまにJSONとか
- 簡単に処理出来る
- 自分が馴れているかどうか
- CSVを吐ける
- 最後はRに渡したい
候補
- ローカルMySQL
- 事前のScheme定義が必要
- R
- 扱い馴れない
- SQLite
- 事前のScheme定義が必要
- (Python)
- あまり向いてない?
_人人人人人人人_ > 突然のDrill <  ̄Y^Y^Y^Y^Y^Y ̄
なぜ Drill
- (デーモン立ち上げておけば)サクっと始められる
- CSVをそのまま読める
- Schema定義がいらない!
- ついでにJSONも読める
- 馴れたSQLで操作出来る
- CSV吐ける
Drillを便利にするために
- いくつかのシェル関数
- Drillのデーモン/クライアントの起動を便利に
drill-start() {
~/compile/zookeeper-3.4.8/bin/zkServer.sh start
drillbit.sh start
}
drill-cli() {
sqlline -u jdbc:drill:zk=localhost:2181
}
drill-web() {
firefox http://localhost:8047
}
もっと便利に
- REPLでの操作が面倒
- ヒストリ遡るのとか
- ミスった時の訂正が地味に不便
- シンタックスハイライト欲しい
- 馴れたツールで編集したい
sql-drill.el
- KeenS/sql-drill.el
- Emacsのsql-modeのDrillサポート
- emacsのsql-modeは拡張可能
- シンタックスハイライト
- REPL
DEMO
まとめ
- ローカルでデータ分析したい時があるよ
- その時にDrillは便利だよ
- Emacs向けのDrillプラグイン作ったよ
ビッグデータしないDrill、ローカルで快適に使うために
Tokyo Apache Drill Meetup2016-03-22