Apache DrillにJDBC経由で接続してみる

そこそこの分量のJSONデータを手元で検索するのにDrillを使っています。Elasticsearchなどに入れてもいいのですが、Drillにはファイルの状態で検索できること、SQLで検索できること(それなりに複雑な集計を手軽に書けたり、必要に応じて他のデータとジョインしたりできる)というメリットがあり、便利に使っています。

ローカルで使うだけであればdrill-embeddedで対話シェルを使うでもよいのですが、使い慣れたGUIフロントエンドやBIツールを使いたい場合など、DrillにJDBC経由で接続できると便利なのですが、DrillをJDBC接続可能なサーバとして動作させるにはZooKeeperが必要になるようです。

というわけでまずはZooKeeperをインストール。といっても最低限必要なのはダウンロードしたアーカイブを適当な場所に展開し、conf/zoo_sample.cfgzoo.cfgにリネームするだけです。

$ tar xvzf zookeeper-3.4.8.tar.gz
$ cd zookeeper-3.4.8
$ mv conf/zoo_sample.cfg conf/zoo.cfg

起動します。

$ cd bin
$ ./zkServer.sh start

Drill側は予めデフォルトで最低限必要な設定が入っているので何もせずにDrillbitを起動します。

$ cd apache-drill-1.4.0/bin
$ ./drillbit.sh start

接続できるか確認してみます。

$ ./drill-localhost
...
0: jdbc:drill:drillbit=localhost>

JDBC経由で接続してみます。Drillを展開したディレクトリ内にあるjars/jdbc-driver/drill-jdbc-all-1.4.0.jarJDBCドライバです。以下の情報で接続できるはずです。

ZooKeeperを入れないといけないのが若干面倒ではありますが、1台で動かす分にはほぼデフォルトの状態で動かすことができるのでJDBC経由でも気軽に使えそうです。