PrestoのWeb UIツールyanagishimaを書きました

https://github.com/wyukawa/yanagishima

インストール方法と使い方はREADMEを見てください。
目指したのはMySQL WorkbenchのPresto版です。
テーブルやパーティションをマウスで指定して右クリックしてselect実行が出来ます。

名前は茅ヶ崎にある柳島からとりました。深い意味は無いです。

コードもUIもまあグダグダな感じではありますが、ひとまずリリースすることが重要だと思っているのでリリースしました。社内でもチーム内で使い始めました。

presto-cliとazkabanとshibを参考にして作ってます。

サーバーサイドはGuice+Jettyで、クライアントサイドはjQueryです。

開発作業のほとんどがJavaScriptをいじることになって、これはもしかしてサーバーサイドもJavaScriptで書いた方が言語も統一出来て良かったのでは?と一瞬思いましたが、僕のnode.js力はアレだし、nodeだと落ちやすそうなので止めました。

同様のツールとしてはAirpal(https://github.com/airbnb/airpal)とshib(https://github.com/tagomoris/shib)があると思います。

AirpalはMySQLが必要だという時点で試す気が失せたし、S3 bucketがRequirementsに入っている時点でクラウド前提な気がしたのでパス。

shibは普通に併用して使ってます。shibはクエリの共有にはすごく便利ですからね。

yanagishimaはクエリの共有とか結果のダウンロードは出来ませんが、MySQL Workbenchライクに操作出来ること、どのカラムのデータなのかが分かりやすく表形式で表示されること、RDBMS不要でインストールが簡単、がアピールポイントです。

RDBMSは使わないですが、local storageを使ってクエリ履歴を保存しています。この辺とかパーティションツリーの表示とかほぼそのまんまshibのコード持ってきてます。

shibに足を向けて寝られませんね。

まあ、そんな感じです。