01:47:21 @mandel59@pleroma.ryusei.dev
icon

自作のSQLiteフロントエンド・クエリ言語処理系Erqに、Vega-Lite統合機能を追加したことで、ターミナル上でSQLiteデータベースにクエリを投げつつ、その場でグラフ化して表示することができるようになった。

Web site image
GitHub - mandel59/erq: Erq - Easy Relational Query Language
A High-Level Grammar of Interactive Graphics
Erqを使って、Vega-Liteのサンプルデータを読み込み、プロットチャートとしてデータ視覚化を行なっている。
Attach image
01:51:12 @mandel59@pleroma.ryusei.dev
icon

Erqを使って、SQLiteデータベースのデータを処理する→Vega-Liteを使ってデータ視覚化を行う
という行為がターミナル上で完結するので、データのアドホックな分析がやりやすくなる。

まあ、クエリが長い場合は、CLIで編集しないで、IDE上で編集したクエリをコピペしたり、リダイレクトで流し込んだりして処理しているけど

Attach image
01:54:24 @mandel59@pleroma.ryusei.dev
icon
Web site image
常用漢字の頭子音の対応表 original: https://twitter.com/lavion_lang/status/1679706083328421889
01:57:41 @mandel59@pleroma.ryusei.dev
icon

ErqにWebからデータをフェッチする機能を入れるかどうか迷ってるんだよなー
データの取得みたいなことまでErqに組み込む必要あるか? みたいなところが気になっていて、それはもうダウンロードは別のツールでやればいいじゃんという気持ちもある
でも、そういうダウンロード用のツールを別途用意する手間もあるから、Erqだけあれば完結すると楽ってのはあるかも

01:59:54 @mandel59@pleroma.ryusei.dev
icon

ただ、今のErqはSQLiteデータベースのフロントエンド代替として始まっていて、SQLiteでできること以上のことをがっつりできるようには設計されていないし、Vega-Lite統合だってやっつけ仕事感がある。SQLite以外の部分が大きくなるならセマンティクスも抜本的に改善したいけど、現状のErqでもそれなりに役に立っている以上、収穫があまりない大改修をやるモチベが若干足りてない。

02:12:57 @mandel59@pleroma.ryusei.dev
icon

Erqのいいところ
SQLよりも簡単に、すぐ書ける。ネストしたサブクエリも全然めんどくさくない。

Erqの悪いところ
ドキュメントもテストも足りてないし、自分しか使ってない。思いつきで機能を加えるし、安定版には程遠い。

02:13:59 @mandel59@pleroma.ryusei.dev
icon

本番のデータ分析に使うのに、処理系が安定していないのは、まあ困るし、その場でなんとなく雑に調べられればいいやって場面じゃないなら、安定した言語でちゃんとやったほうがいいです

02:15:12 @mandel59@pleroma.ryusei.dev
icon

まあ、最初はErqで雑にやっちゃて、本番ではErqが吐いたSQLとかVega-Liteのspecとかを使って処理するとかもできるとは思う