yanagishimaとElasticsearch
Elasticsearch 6.3になってSQLがサポートされたのですが、KibanaからだとDiscoverからはクエリ投入できなくてDev Toolsから実行するしかないです。
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/xpack-sql.html
そのうちDiscoverからはクエリ投入できるようになりそうですけど、yanagishimaでサポートしても悪くあるまいということで進めてます。
Elasticsearch JDBC Driverを自前で実装してyanagishimaから使っています。
https://github.com/wyukawa/elasticsearch-jdbc-driver
自前実装といっても下記を参考にしてますし、全メソッドを実装しているわけではなくyanagishimaで使うものだけ実装しています。
https://github.com/tokuhirom/unofficial-elasticsearch-jdbc-driver
SQLからLuceneクエリに変換するAPIも用意されていたので、それも別途取り込んでます。
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/sql-translate.html
maven repoにjar登録するの面倒かなと思ったんですが、調べつつやったらそんなに大変でもなかった。下記がプロジェクト申請時のissueです。
https://issues.sonatype.org/browse/OSSRH-41141
社内で軽く使い始めてみましたが、group byに1つしかかけない、case/union allをサポートしてない、sum(if())みたいにifを関数として使えない、などまだ機能が足りてない感じなので今後に期待といったところです。
関数も少ないですね。
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/sql-syntax-show-functions.html
個人的にはyanagishimaでsqlからtranslateしてそこからkibanaにリンクできると面白いかなと思ってます。
yanagishimaのバージョンは今14.0ですが、15.0で正式にElasticsearch SQLをサポートしようと思ってます。