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に移行した。そしてサクサク動く。

その他OSSのBIツール比較

全部試した。

  • Re:DashはOSS版だと寂しい。
  • 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最強。

インストール

Ansible + Ubuntu 16.04 ならこんな感じ。コマンドでやっても一緒。

playbook.yml
---
- name: Install Metabase
  hosts: webservers
  become: true
  tasks:
    - name: add apt repo
      apt_repository:
        repo: 'ppa:openjdk-r/ppa'
        state: present
    - name: Install Java
      apt:
        name: openjdk-8-jdk
        update_cache: yes
        state: present
    - name: Download metabase
      get_url:
        url: http://downloads.metabase.com/v0.26.1/metabase.jar
        dest: /opt/metabase/metabase.jar
        mode: 0755

あとはサーバーに入って、 java -jar /opt/metabase/metabase.jar で完了。

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

Dockerならコマンド一発。

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

追記

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

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