自作のSQLiteフロントエンド・クエリ言語処理系Erqに、Vega-Lite統合機能を追加したことで、ターミナル上でSQLiteデータベースにクエリを投げつつ、その場でグラフ化して表示することができるようになった。
Erqを使って、SQLiteデータベースのデータを処理する→Vega-Liteを使ってデータ視覚化を行う
という行為がターミナル上で完結するので、データのアドホックな分析がやりやすくなる。
まあ、クエリが長い場合は、CLIで編集しないで、IDE上で編集したクエリをコピペしたり、リダイレクトで流し込んだりして処理しているけど
ErqにWebからデータをフェッチする機能を入れるかどうか迷ってるんだよなー
データの取得みたいなことまでErqに組み込む必要あるか? みたいなところが気になっていて、それはもうダウンロードは別のツールでやればいいじゃんという気持ちもある
でも、そういうダウンロード用のツールを別途用意する手間もあるから、Erqだけあれば完結すると楽ってのはあるかも
ただ、今のErqはSQLiteデータベースのフロントエンド代替として始まっていて、SQLiteでできること以上のことをがっつりできるようには設計されていないし、Vega-Lite統合だってやっつけ仕事感がある。SQLite以外の部分が大きくなるならセマンティクスも抜本的に改善したいけど、現状のErqでもそれなりに役に立っている以上、収穫があまりない大改修をやるモチベが若干足りてない。
Erqのいいところ
SQLよりも簡単に、すぐ書ける。ネストしたサブクエリも全然めんどくさくない。
Erqの悪いところ
ドキュメントもテストも足りてないし、自分しか使ってない。思いつきで機能を加えるし、安定版には程遠い。
本番のデータ分析に使うのに、処理系が安定していないのは、まあ困るし、その場でなんとなく雑に調べられればいいやって場面じゃないなら、安定した言語でちゃんとやったほうがいいです
まあ、最初はErqで雑にやっちゃて、本番ではErqが吐いたSQLとかVega-Liteのspecとかを使って処理するとかもできるとは思う