ClickHouse で marimo を使う
marimo は、SQL が組み込まれた Python 向けのオープンソースのリアクティブノートブックです。セルを実行したり UI 要素を操作したりすると、marimo は影響を受けるセルを自動的に再実行(または古い状態としてマーク)し、コードと出力の整合性を保つことで、不具合の発生を未然に防ぎます。すべての marimo ノートブックはプレーンな Python コードとして保存されており、スクリプトとして実行でき、アプリとしてデプロイすることもできます。

1. SQL サポート対応の marimo をインストールする
これで、localhost 上のページを表示するウェブブラウザが開きます。
2. ClickHouse へ接続する
marimo エディター左側のデータソースパネルに移動し、「Add database」をクリックします。

データベースの詳細を入力するように求められます。

その後、接続を確立するために実行できるセルが追加されます。

3. SQL を実行する
接続を確立したら、新しい SQL セルを作成し、ClickHouse エンジンを選択できます。

このガイドでは、New York Taxi データセットを使用します。

これで、結果をデータフレームで確認できるようになりました。ここでは、特定の乗車地点からの、最も高額な料金が発生した降車を可視化したいとします。marimo には、そのために役立ついくつかの UI コンポーネントが用意されています。ロケーションの選択にはドロップダウンを使い、チャート描画には altair を使用します。

marimo のリアクティブな実行モデルは SQL クエリにも適用されるため、SQL を変更すると、それに依存するセルの後続の計算処理が自動的にトリガーされます(あるいは、コストの高い計算についてはセルを古い状態としてマークすることもできます)。そのため、クエリを更新するとチャートとテーブルも自動的に更新されます。
また、App View に切り替えて、データ探索用のすっきりしたインターフェイスで表示することもできます。
