yanagishima v3をリリースしました。

yanagishima v2をリリースしました。 - wyukawa’s blog
3週間前にv2をリリースしたyanagishimaですが、v3もリリースしました。
https://github.com/wyukawa/yanagishima


結構変わっていて作っている方もあんまり覚えていないんですがw 重要なポイントをいうとクエリ実行を非同期にしました。これによって使ってる側から見るとユーザがクエリ実行中にクエリの進捗状況をプログレスバーで見れるようになりました。クエリのkillもできます。

今まではクエリ一覧画面にいって、そこから自分のクエリを探してkillする必要がありましたが、その必要がなくなりました。

実装面の話をすると今まではクエリをsubmitしたら同期的に実行して全部終わったら結果表示という仕方をしていました。これを非同期実行にしてまずprestoのquery idを取得して、これをもとに進捗状況を見せたりクエリのkillを実行できるようにしました。


それ以外にはshare機能があるのですが、これは認証、権限管理とセットじゃないと意味をなさない機能です。

yanagishimaは認証機能を持っておらずこれは別のソフトを使ってくださいというスタンスです。例えばApacheでリバースプロキシしてかつLDAP連携してとかそういう話です。

で、権限管理機能はgithub.com上ではコメントアウトしてオフにしてます。権限管理機能の説明をすると長くなるし、その機能が必要なユーザもまだいないだろうしということで。

僕の環境ではその権限管理をオンにしてて、リバースプロキシ済みのリクエストにHTTPヘッダを追加してそれを元にyanagishimaで権限管理をpresto単位で行ってます。

権限管理をしているので、クエリを実行したりクエリ結果を見れないユーザがいるわけですが、そのようなユーザに対してもクエリおよびクエリ結果を共有したいケースがあるのでそのためのshare機能です。特定のクエリおよびクエリ結果に対してユーザがpublishボタンを押すと別途パーマリンクが生成されて、それを共有するという流れになります。


非同期、share以外ではbookmark機能も一新しています。
下記のようなクエリテンプレートを登録して実行するときにパラメータ置換をすることができます。

select * from hoge where yyyymmdd=${yyyymmdd} limit ${limit}


他にはグラフ表示の機能もあります。

という具合に機能が盛りだくさんになってきているので社内でまず説明会をしようかなと思っています。


注意事項:
社内ではAPIサーバー側とSPA側をリポジトリ分けて開発しているのですが、github.com上では一つにしてます。
で、社内版ではどこの機能が使われているかをトラッキングしていて、github版ではそれは不要なので削除してます。
そういうこともありSPA側は随時github.comにあげているわけではなくて、作業が一段落したらという感じになってます。
APIサーバー側は特にそういうのが無いので随時github.comにあげています。そういう事情があるのでgithub.comのmasterからビルドして動かそうとすると動かない可能性が高いです。