Metabase、まじでイケてる。
1日で、Re:Dashから乗り換えました。
Metabaseとは
OSSのデータ可視化ツール。Re:Dashとかと同じ類。
AWSとかに乗せて、誰もが見れるダッシュボードを作ったりする時に使うと、俺かっけーってなります。
スクリーンショット
実際に社内で運用している様子をモザイク付きでお見せします。
毎日みているダッシュボード。これの4倍くらいの数値見てる。
ダッシュボードの編集。マウスで簡単に位置や大きさの変更ができる。
クエリビルダー的なやつがあり、グルーピングとか超絶便利。SQL書けない人でも、単一テーブルとかだったら余裕かと。
グラフ化も簡単。
SQLでのクエリ編集画面。ちゃんと補完してくれる。
Metabaseの良い所
- 見た目が格好いい。
- インストールが簡単。
- openjdk-8-jdk入れて、jarファイル置くだけ。
- 豊富なデータソースに対応。MySQL・PostgreSQL・GoogleAnalytics・BigQueryなど。
- 結果を直感的にいい感じに可視化してくれ、グラフ種類が豊富。
- 表
- 時系列
- パイチャート
- バブルプロット
- 単一の数値
- 結果のダッシュボード化も超直感的。
- SQLの補完が親切で書きやすい。
- カラム名のFuzzy Matchingまでやってくれる
- Slack連携、ユーザー追加も超簡単。
- Slack連携時の注意点 はある。
- ユーザーごとの権限を細かく設定できる
- 管理が楽
- クライアント側で必要なのはブラウザだけ。(Re:Dashもそうだけど)
- ユーザー追加が楽。勝手にパスワード発行してくれる。
- ユーザーごとにできることの制限も簡単にできる。
- Googleアカウントでのログイン、LDAP認証にも対応しているので、そこそこの規模の会社でも実用的
- 開発が活発
- サーバーサイドがClojureっていうのも格好いい。
- Pythonから移行したらしい。Why we picked Clojure - フロントエンドはAngularからReactに移行した。そしてサクサク動く。
- サーバーサイドがClojureっていうのも格好いい。
Metabaseに足りないところ
- Slack通知(Pulseという機能)で、マルチバイト文字が使えない。
- Issueはあるのでそのうち改善されるかも https://github.com/metabase/metabase/issues/2342
- たまに、長い間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のクエリを覚えるのが、学習コスト高い。
参考
日本語の記事が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で自動化しました。
Metabaseのインストールの他に、下記をやってくれます。
- 設定をMySQLに入れる(デフォルトはH2を使うのでバックアップなど面倒)
- Systemdでデーモン化
[/追記]
Dockerならコマンド一発。
docker run -d -p 3000:3000 --name metabase metabase/metabase
追記
好きすぎて、日本語ローカライズのプロジェクトに参加することにしました。これも完成したら敵無しか。
さらに追記
最近、 Redash の Version 5 をアップグレードする機会があり、こちらもけっこう便利そうでした。
UI が今っぽくなっていたり、クエリをテーブルのように使う機能が追加されていたりします。
内部的には、 SQLite 使ってテーブルのように問い合わせることができてます。 Google Spreadsheets との連携がすごかった。
アップグレードには苦労しましたがw
Python のマイグレーションに失敗して、ソースコード読んで手動で設定する必要がありました。いつか記事にしたい。
さらにさらに追記
Metabase 0.30.4 にアップグレードしたら、セットアップしてからワンクリックでこんな画面になった・・・いけすぎててやばい。