Edited at

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 @mashihara さんのご指摘 の通り、 graphana は色々なソースに対応している


    • ダッシュボードがめっちゃかっこいいんだけど、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 が今っぽくなっていたり、クエリをテーブルのように使う機能が追加されていたりします。

内部的には、 SQLite 使ってテーブルのように問い合わせることができてます。 Google Spreadsheets との連携がすごかった。

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

Python のマイグレーションに失敗して、ソースコード読んで手動で設定する必要がありました。いつか記事にしたい。


さらにさらに追記

Metabase 0.30.4 にアップグレードしたら、セットアップしてからワンクリックでこんな画面になった・・・いけすぎててやばい。

image.png