14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OSSのBIツール比較(Metabase,Superset,Kibana)

Posted at

はじめに

Webアプリとして使えるOSSのBIツール MetabaseApache SupersetKibanaの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という文字が入る)
    • 商用版を購入すれば、この制限はなくなる模様。
  • パルスというメールやSlackへの通知機能

Superset

  • CSVアップロード機能
  • 作れるチャートの種類は多い
  • チャート埋込機能(iframe)
  • かなり細かなロールと権限設定機能(細かすぎて使いにくそうでもあるが)

Kibana

  • OSS版、ベーシック版(無償版)、有償版と種類がある。OSS版の機能は限定的、ベーシック版の機能はかなり豊富。
  • OSS版
    • チャート作成、ダッシュボード作成、データ探索の基本機能
    • ユーザ管理機能はない模様
    • ダッシュボード埋込機能(iframe)
  • ベーシック版(無償版)
    • かなり機能豊富。
    • Canvasというかなりカスタマイズ可能なダッシュボードのコンポーネント
    • Lensというより直感的なチャート作成GUI
    • アラート機能
    • 若干、ごちゃついてて機能が分かりづらいかも。

ちなみに、有償版には「機械学習」や「異常検知」機能などがついてくる。

ビジュアライゼーション

例のタイタニックのデータで積み上げヒストグラムを作ってみる。

項目 Metabase Superset Kibana
GUI
自由度

Metabase

  • 積み上げヒストグラムはGUIで簡単にできる。
  • ビンの数が直接指定できなかった。(だし直接SQLを書けばできる)

Screenshot from 2020-11-17 22-54-53.png

Superset

  • GUIでは積み上げヒストグラムができなかった。(積み上げバーチャートは可能)
  • 積み上げバーチャートを利用して、直接SQLを書けばできる。

Screenshot from 2020-11-17 23-29-26.png

Kibana

  • GUIで積み上げヒストグラムは簡単にできる。
  • ビンの数なども設定できる。
  • KQL(Kibanaのクエリ言語)で複雑なことができるのかはちょっと不明。
    • KQLとか言われても学習コスト高い(覚える気になれない)

※画面はベーシック版です。機能的には同じダッシュボードですが、OSS版は日本語メニューになっていません。(日本語文字が扱えないのではなく、ローカライズされていない)
Screenshot from 2020-11-17 23-39-13.png

ダッシュボード

Metabase Superset Kibana

ダッシュボードはあまり差異がない。あえて比較するならKibanaの方が機能は豊富と思われる

Metabase

Screenshot from 2020-11-17 23-47-28.png

Superset

Screenshot from 2020-11-17 23-47-46.png

Kibana

※画面はベーシック版です。機能的には同じダッシュボードですが、OSS版は日本語メニューになっていません。(日本語文字が扱えないのではなく、ローカライズされていない)

Screenshot from 2020-11-17 23-52-20.png

総論

どれを使っても、概ねチャート作成やダッシュボード作成は可能。

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にデータ重複して突っ込んでしまったからです。)

Screenshot from 2020-11-18 22-32-19.png

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?