ExcelをDBに入っているデータとジョインできたら便利なのでは?ということで作ってみました。
GitHubのリリースページからダウンロードしたjarファイルをDRILL_HOME/jars/3rdparty
にコピーし、ストレージ設定でdfsに以下のフォーマットの設定を追加します。
"formats": { "excel": { "type": "excel", "extensions": [ "xlsx" ] }, ... }
するとDrillで*.xlsx
ファイルをSQLで検索できる様になります。もちろんDrillでアクセス可能な他のデータソース上のテーブルとジョインすることもできます。
0: jdbc:drill:zk=local> SELECT id, name FROM dfs.`/tmp/emp.xlsx` where age > 35.0; +----------+----------------+ | id | name | +----------+----------------+ | takezoe | Naoki Takezoe | +----------+----------------+ 1 row selected (3.118 seconds)
本当はシートをテーブルとして扱うようにしたかったのですが、Drillのdfsは1ファイルを1テーブルとして扱うためこのプラグインでは1シート目のデータしか使うことができません。また、カラム名として使用するためヘッダ行を入れておく必要があるという制約があります。まあネタで作ったようなものなのでこれらの点については目を瞑っていただけると幸いですw