はじめに
Webアプリとして使えるOSSのBIツール Metabase、Apache Superset、Kibanaの3種を比較した。
KibanaはOSS版、無償版、有償版とあるがOSS版で比較。
なお、OSSのBIツールは、この他にReDashなど他にも選択肢はある。
基本情報
2020/11現在
項目 | Metabase | Superset | Kibana |
---|---|---|---|
最新バージョン | v0.37 | v0.37 | v7.10 |
Githubスター数 | 22.7K | 1.3K | 15.1K |
言語/プラットフォーム | Clojure/JVM製 | Python/CPython製 | TypeScript/Node.js製 |
ライセンス | AGPL ※アプリ組込に関しては 制約の少ない独自ライセンスあり |
Apache2.0 | Apache2.0(OSS版) Elastic(無償・有償版) |
商用版 | あり | なし | あり |
主なメンテ企業・団体 | Metabase社 | Apache Software Foundation | Elastic社 |
日本語ローカライズ | 〇 | ほぼ× | ×(OSS版) ○(無償版) |
RDB系 | 〇 | 〇 | × |
NoSQL,ビッグデータ系 | 〇Mongo,Druid,Presto他 | ◎Druid,Hive,Presto,Impala他 | △Elasticsearchのみ |
クラウド系 | 〇Redshift,Athena,BigQuery他 | 〇Redshift,Athena,BigQuery他 | × |
セットアップ(起動)
Metabase | Superset | Kibana |
---|---|---|
○ | × | ○ |
なお、MetabaseはJava、SupersetはPythonが必要だが、そのセットアップは比較しない。
ApacheSupersetはPython製のため、セットアップの難易度が高め(MetabaseやKibanaはBattery Included)。
Metabase
すごく簡単。単一JARファイルを実行するだけ。
MetabaseがPython製だった時代は、セットアップに多くの依存関係があり課題であったがClojure製になってからは、すごく簡単になったそうです。
$ java -jar metabase.jar
Superset
Metabaseと比較すると、面倒くさい。Python製の辛みであり、依存関係が複雑。PIPインストール時にコンパイルが必要になるためGCCなども必要。
またアプリケーションサーバにGunicorn
を利用。
以下例ではキャッシュサーバは省略しているが、本来ならRedisなどのキャッシュサーバも立ち上げないといけないし、Superset自体が利用するDBもSQLiteではなくMySQLとかにすべきかもしれない。
# 各種依存LIBを導入し
$ apt install -y gcc build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev
# Pipで依存ライブラリを導入し
$ pip3 install apache-superset gevent Pillow↵
# 利用するDBに応じて、依存ライブラリをさらに導入し
$ apt install default-libmysqlclient-dev
$ pip3 install mysqlclient
# SupersetのDB準備
$ superset db upgrade
$ superset fab create-admin --username $ADMIN_NAME\
--firstname $ADMIN_FIRSTNAME\
--lastname $ADMIN_LASTNAME\
--email $ADMIN_EMAIL\
--password $ADMIN_PASSWORD
$ superset init
# WSGIアプリケーションサーバでSuperset起動
$ gunicorn -w 4\
-k gevent\
-b 0.0.0.0:8088\
"superset.app:create_app()"
Kibana
Node.js含め依存が含まれて配布されているので比較的らくちん。($KIBANA_HOME
はTAR展開後のディレクトリ)
# 設定ファイル編集して、接続するElasticsearchを記述する
$ vi $KIBANA_HOME/config/kibana.yaml
# 起動する
$ $KIBANA_HOME/bin/kibana
対応データソース
Metabase | Superset | Kibana |
---|---|---|
◎ | 〇 | × |
Kibana
は実質Elasticsearch
専用。Metabase
,Superset
ともに多数のデータソースに対応。
Superset
はデータソースに応じたドライバーライブラリをいれないといけないが、Metabse
は同梱されている様で扱いやすい。
また、Metabase
の方が設定も簡単。
機能性
Metabase | Superset | Kibana |
---|---|---|
◎ | 〇 | 〇 |
チャート作成、クエリビルダ、ダッシュボードなどは、それぞれ持っている。 | ||
それぞれ特徴のある機能があるが、Metabaseがもっとも使いやすそう。 |
KibanaはOSS版の機能は限定的でユーザ管理機能がないのがやや不満。
ただし、OSSではないがベーシック版(無償版)ならKibanaが機能面では頭一つ抜きん出ていると思う。
Metabase
- 自動探索機能
- ある程度自動でチャートなどを作成する。(が、大抵目的と合致しない)
- ダッシュボード埋込機能(iframe/サーバー)
-
サーバーサイドへの埋込にも対応している!これはかなりいい!またこのときはAGPLに該当しないライセンスになる。(ただし、
Powered By Metabase
という文字が入る) - 商用版を購入すれば、この制限はなくなる模様。
-
サーバーサイドへの埋込にも対応している!これはかなりいい!またこのときはAGPLに該当しないライセンスになる。(ただし、
- パルスというメールやSlackへの通知機能
Superset
- CSVアップロード機能
- 作れるチャートの種類は多い
- チャート埋込機能(iframe)
- かなり細かなロールと権限設定機能(細かすぎて使いにくそうでもあるが)
Kibana
- OSS版、ベーシック版(無償版)、有償版と種類がある。OSS版の機能は限定的、ベーシック版の機能はかなり豊富。
- OSS版
- チャート作成、ダッシュボード作成、データ探索の基本機能
- ユーザ管理機能はない模様
- ダッシュボード埋込機能(iframe)
- ベーシック版(無償版)
- かなり機能豊富。
- Canvasというかなりカスタマイズ可能なダッシュボードのコンポーネント
- Lensというより直感的なチャート作成GUI
- アラート機能
- 若干、ごちゃついてて機能が分かりづらいかも。
ちなみに、有償版には「機械学習」や「異常検知」機能などがついてくる。
ビジュアライゼーション
例のタイタニックのデータで積み上げヒストグラムを作ってみる。
項目 | Metabase | Superset | Kibana |
---|---|---|---|
GUI | ◯ | △ | ◎ |
自由度 | ◯ | ◯ | △ |
Metabase
- 積み上げヒストグラムはGUIで簡単にできる。
- ビンの数が直接指定できなかった。(だし直接SQLを書けばできる)
Superset
- GUIでは積み上げヒストグラムができなかった。(積み上げバーチャートは可能)
- 積み上げバーチャートを利用して、直接SQLを書けばできる。
Kibana
- GUIで積み上げヒストグラムは簡単にできる。
- ビンの数なども設定できる。
- KQL(Kibanaのクエリ言語)で複雑なことができるのかはちょっと不明。
- KQLとか言われても学習コスト高い(覚える気になれない)
※画面はベーシック版です。機能的には同じダッシュボードですが、OSS版は日本語メニューになっていません。(日本語文字が扱えないのではなく、ローカライズされていない)
ダッシュボード
Metabase | Superset | Kibana |
---|---|---|
◯ | ◯ | ◯ |
ダッシュボードはあまり差異がない。あえて比較するならKibanaの方が機能は豊富と思われる
Metabase
Superset
Kibana
※画面はベーシック版です。機能的には同じダッシュボードですが、OSS版は日本語メニューになっていません。(日本語文字が扱えないのではなく、ローカライズされていない)
総論
どれを使っても、概ねチャート作成やダッシュボード作成は可能。
Metabase
ライセンスさえ許容できるならMetabaseが使いやすくてイイ。
自身のアプリにチャートを組み入れたり、顧客へ提供する場合などはライセンスが問題になるかもしれない。
ただし、チャートやダッシュボードの埋込に関してはAGPL対象外の別ライセンスになっているため、「Metabase提供」文言含め改変しなければ自身のアプリへの組込利用はできる模様。
- Pros
- UIが優れている。
- セットアップが簡単
- 使いやすい。
- 日本語化されている
- Cons
- ライセンスがAGPL
Apache Superset
地図系のチャートなんかはSupersetが豊富。Metabaseが対応していないデータソースがある場合などは選択肢に入るかもしれない。
- Pros
- チャートの種類が豊富
- ライセンスがApache
- Cons
- セットアップがやや難解
- 日本語化が中途半端
Kibana(OSS版)
分析データがRDBに適しておらず、Elasticsearchを使った方が良い場合など。(テキストデータを分析したいなど)
- Pros
- セットアップが簡単
- ライセンスがApache
- チャートが豊富
- Cons
- 日本語化がされていない
- ユーザ管理機能がない
- Elasticsearch専用
おまけ
Supersetのダッシュボードはiframeを配置できるので、以下のように3つのBIツールのチャートを組み合わせたダッシュボードが作れたりする。
左から、Metabase、Superset、Kibana。(グラフの形が違うのはご愛嬌です。MySQLにデータ重複して突っ込んでしまったからです。)