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に足を向けて寝られませんね。
まあ、そんな感じです。