この記事は Apache Drill Advent Calendar 2015 の25日目の記事です。
2015年もあとわずか。今回は Drill の JIRA チケットや GitHub を眺めつつ、2016年にどんな新機能が出てきそうか興味のおもむくままにご紹介しましょう。
Cassandra ストレージプラグイン
[DRILL-92] Cassandra storage engine
初期パッチが出て議論が行われたものの、ここしばらく動きが中断しちゃっていますね。
How to Use Apache Drill with Cassandra - Stack Overflow
こちらの議論を見ると、Drill や Cassandra の開発が進んだ結果、当初のパッチがもう使えなくなってしまっているようです。誰かー。
Couchbase ストレージプラグイン
jacques-n/drill-couchbase-plugin · GitHub
drill/contrib/storage-couchbase at couchbase-storage-plugin · tgrall/drill · GitHub
2つの作りかけの実装があります。下の方は Couchbase の N1QL を利用しているようです。
Solr/Elasticsearch ストレージプラグイン
[DRILL-3585] Apache Solr as a storage plugin
[DRILL-3637] Elasticsearch storage plugin
Solr/Elasticsearch インデックスも構造はドキュメントデータベースみたいなものですからね。SQL でクエリを投げられれば便利です。
Kudu ストレージプラグイン
[DRILL-4241] Add Experimental Kudu plugin
高速な分析に最適化したストレージ Apache Kudu に対応するストレージプラグインです。
XML フォーマットのサポート
[DRILL-3878] Support XML Querying (selects/projections, no writing)
JSON にクエリができるなら XML もできるだろうということで。JSONRecordReader をフックしている感じでしょうか。
HTTPD ログフォーマットのサポート
[DRILL-3423] Add New HTTPD format plugin
HTTPD ログを変換なしに直接 SQL で処理できるというプラグインです。これもあると便利ですね。
Excel フォーマットのサポート
[DRILL-3738] Create StoragePlugin for Excel files (.xlsx or possibly .xls) - version 1 - read only.
Apache POI を使って Excel のファイルに対応させようという試みです。企業にはたくさんありますからねえ。
INSERT INTO TABLE サポート
[DRILL-3534] Insert into table support
前から課題にはあがっていると思うのですが、実装が進んでいるのかどうかはイマイチ不明です。
分析関数の追加
[DRILL-3962] Add support of ROLLUP, CUBE, GROUPING SETS, GROUPING, GROUPING_ID, GROUP_ID support
BI 分析ワークロードに欠かせない分析関数の追加です。Drill が内部で使っている Apache Calcite にはすでに実装があるので、Drill でサポートするのはそんなに困難ではないはずです。
地理空間データのクエリ
[DRILL-3914] Support geospatial queries
PostgreSQL 向け PostGIS のような感じの、地理空間データのクエリをサポート。内部で ESRI Geometry API for Java を使うのは定番のようです。すでに 1.3 で基本的な機能は master に取り込まれているっぽいです。
JDK 8 サポート
[DRILL-1491] Support for JDK 8
結構よく聞かれる JDK 8 のサポート。まだいくつかのサブタスクが残っているようです。JDK 7 のサポート切れからしばし経過する一方 JDK 8 の導入が進んでいるので、早い対応が望まれますね。
YARN サポート
[DRILL-1170] YARN support for Drill
負荷に合わせて動的に YARN コンテナを増減するというしくみを目指す取り組み。だけどもこれもまだ動きが無いような。