Apache Drill 1.2でJDBC Storage Pluginを試してみる

apache-drill-logo2

こんにちは。GMO NIKKOのY.Sです。

先月、Apache Drill 1.2がリリースされました。
Apache DrillはスキーマフリーのSQLエンジンで、HDFS, HBase, MongoDB,  Amazon S3, ローカルのCSV, JSONファイルなど、複数のデータソースをテーブルと見なしてJOINすることができるので、クエリを使って様々なデータを取得できます。

今回のリリースでいくつかの機能が追加されました。

  • JDBC storage plugin を介したRDBのサポート
  • 新しいwindow関数の追加
  • File/Directoryに対するDROP TABLEができるように
  • MongoDBサポートの強化

今回RDBがサポートされたとのことだったので、どんな感じになるのか試してみました。
Drill in 10 Minutesの手順でインストールします。

今回はローカルマシン上でembeddedモードで動かしてみます。

tutorialにあったparquetフォーマットのデータにqueryを投げてみたところ、同じ結果が返ってきました。

JDBC storage pluginを使うにはこちらを参考に設定していきます。

事前にJDBC driverが必要になるのでjarファイルを落としておきます。
今回MariaDBに接続したかったので、MariaDB Connector/Java 1.2のページ
からダウンロードして、jarファイルをapache-drill-1.2.0/jars/3rdparty/配下に配置します。

MariaDBにはtest.t1テーブルを作って適当なデータをいれておきます。

drill-embeddedをいったん終了して抜けます。
次に設定するプラグイン設定情報を永続化できるようするため、<installed_path>/conf/drill-override.confに以下追記します。

再度drill-embeddedを起動します。
http://localhost:8047/storage/のWeb ConsoleにアクセスしてNew Storage Pluginの追加設定をします。

今回MariaDBに接続したいので、プラグイン名をmariadbと入力して[Create]を押します。
Configurationのテキストフィールドが表示されるので、次のように指定しました。

Updateボタン押してSuccessと出たので、うまくいったようです。
show databases してみます。

show tablesの結果は表示されないものの、SQLの実行はうまく行きました。

MongoDBにもテストデータを入れて Storage Pluginを有効にします。こちらは接続先情報を変えるだけで、query結果の取得までうまくいきました。

MongoDBとMariaDBのデータソースを使ってjoinしてみます。

無事ちゃんと取れてるようです。

今回はMongoとMariaDBで試しましたが、HDFS、HBase、RDBなど多様なデータソースに対してjoinしてSQLを実行できるので、色々な組み合わせで活用できそうです。

インストールしてすぐ試すことできるので、興味がある人は是非お試しください。