Metabase で SQL を直接書いたときと Question のクエリビルダーを使ったときの挙動の違いを確認する
databaseMetabase は OSS の BI ツールで、Redash のようにクエリを書いてデータを取得し可視化することができる。 セルフホストするほかクラウド版もあり、Pro 以上のプランだと React SDK でグラフを描画することもできる。
Redashでデータを可視化する - sambaiz-net
$ docker run -d -p 3000:3000 --name metabase metabase/metabase
主要 OSS やクラウドのデータベースは大体カバーしているが Redash と異なり DynamoDB や Google Sheets などはサポートしていない。
直接 SQL を書くか Question のクエリビルダーのクエリでデータを取得する。
グラフの種類は Redash より少し多いが Python の実行はサポートされておらず拡張は難しそうだ。
Redash と同じく SQL には {{variable}} のようにテンプレート変数を埋められて、デフォルト値を設定したり入力させたりすることができる。
Question と直接書いた SQL は区別され、同じクエリでも Question で作ったものだけダッシュボードからドリルダウンでき、テンプレート変数を埋めることなくフィルタ条件を加えることもできる。
Question には SQL 以上の情報はないので Metabase に依存しないという点で気軽に使えてよい。ただ、全カラムを取ってくる Question のクエリは巨大なテーブルに対しては非効率すぎるし、複雑なクエリは書けないこともある。 そんな場合に使えるのが Model でビューのように中間テーブルのクエリを書いておき Question のデータとして参照することができる。