Clojure
データ分析
可視化
OSS
Metabase

OSSのデータ可視化ツール「Metabase」が超使いやすい

Metabase、まじでイケてる。

image.png

https://www.metabase.com/

1日で、Re:Dashから乗り換えました。

Metabaseとは

OSSのデータ可視化ツール。Re:Dashとかと同じ類。
AWSとかに乗せて、誰もが見れるダッシュボードを作ったりする時に使うと、俺かっけーってなります。

スクリーンショット

実際に社内で運用している様子をモザイク付きでお見せします。

毎日みているダッシュボード。これの4倍くらいの数値見てる。

image.png

ダッシュボードの編集。マウスで簡単に位置や多きさの変更ができる。

image.png

クエリビルダー的なやつがあり、グルーピングとか超絶便利。SQL書けない人でも、単一テーブルとかだったら余裕かと。

image.png

グラフ化も簡単。

image.png

SQLでのクエリ編集画面。ちゃんと補完してくれる。

image.png

Metabaseの良い所

  • 見た目が格好いい。
  • インストールが簡単。
    • openjdk-8-jdk入れて、jarファイル置くだけ。
  • 豊富なデータソースに対応。MySQL・PostgreSQL・GoogleAnalytics・BigQueryなど。
  • 結果を直感的にいい感じに可視化してくれ、グラフ種類が豊富。
    • 時系列
    • パイチャート
    • バブルプロット
    • 単一の数値
  • 結果のダッシュボード化も超直感的。
  • SQLの補完が親切で書きやすい。
    • カラム名のFuzzy Matchingまでやってくれる
  • Slack連携、ユーザー追加も超簡単。
  • ユーザーごとの権限を細かく設定できる
  • 管理が楽
    • クライアント側で必要なのはブラウザだけ。(Re:Dashもそうだけど)
    • ユーザー追加が楽。勝手にパスワード発行してくれる。
    • ユーザーごとにできることの制限も簡単にできる。
    • Googleアカウントでのログイン、LDAP認証にも対応しているので、そこそこの規模の会社でも実用的
  • 開発が活発
    • サーバーサイドがClojureっていうのも格好いい。
    • フロントエンドはAngularからReactに移行した。そしてサクサク動く。

Metabaseに足りないところ

  • Slack通知(Pulseという機能)で、マルチバイト文字が使えない。
  • たまに、長い間SQLを書いていると補完が変な挙動することがある。画面更新したら治る。
    • 画面更新しても、書きかけのSQLは消えないところもイケてる。
  • 現時点では多言語対応していない。エンジニアだけの環境なら全く問題ないが。

その他OSSのBIツール比較

全部試した。

  • Re:Dash
    • OSS版だとダッシュボードや図が寂しい。
    • Metabaseとできることは似ているが、「使いやすさ」が圧倒的に違う。レスポンシブなダッシュボード、SQL自動補完、グラフ化のオプションなど
  • Superset
    • デモのデータを可視化するのは非常に良かったが、実際のデータを入れるのが難しかった。
    • Read OnlyなDBには使えない。
  • Kibana・Grafana
    • ダッシュボードがめっちゃかっこいいんだけど、DBがKVSやElasticsearch前提
    • MySQLに入ってるデータをSQLで取ってきて見たいんだよなーみたいな時に、いやまずRDBのスキーマをElasticsearchのインデックスにマッピングして同期しないと。
    • Elasticsearchのクエリを覚えるのが、学習コスト高い。

参考

https://www.astronomer.io/blog/six-open-source-dashboards/

日本語の記事が2017/11/04時点で少ないのはなんでだろう。

結論

Metabase最強。

インストール

Ubuntu 16.04 ならこんな感じ。

sudo add-apt-repository 'ppa:openjdk-r/ppa'
sudo apt update
sudo apt install openjdk-8-jdk
sudo mkdir /opt/metabase
wget http://downloads.metabase.com/v0.27.1/metabase.jar -O /opt/metabase/metabase.jar
java -jar /opt/metabase/metabase.jar

デーモン化したいなら nohup java -jar /opt/metabase/metabase.jar & でいける。

[追記]

何度かインストールする機会があったので、環境構築をAnsibleで自動化しました。

https://github.com/acro5piano/metabase-playbook

Metabaseのインストールの他に、下記をやってくれます。

  • 設定をMySQLに入れる(デフォルトはH2を使うのでバックアップなど面倒)
  • Systemdでデーモン化

[/追記]

Dockerならコマンド一発。

docker run -d -p 3000:3000 --name metabase metabase/metabase

追記

好きすぎて、日本語ローカライズのプロジェクトに参加することにしました。これも完成したら敵無しか。

https://www.metabase.com/blog/Metabase-in-your-language/

さらに追記

最近、 Redash の Version 5 をアップグレードする機会があり、こちらもけっこう便利そうでした。
UI が今っぽくなっていたり、クエリをテーブルのように使う機能が追加されていたりします。

アップグレードには苦労しましたがw