Airbnb製のCaravel改めSupersetを使ってデータ可視化を試してみた。

  • 23
    いいね
  • 0
    コメント

この記事はOrigami Advent Calendarの8日目の記事です。

Origamiでは現在、re:dashというBIツールを使っているのですが、最近airbnb製のsupersetというツールにも興味が湧いたので開発用に使っているDBを対象にして環境構築からデータ可視化までの一連を試してみたのと、普段使っているredashとの比較をしてみました。

環境

公式のドキュメンテーションに沿って構築します。サーバーはEC2のt2.micro、OSはubuntuを使っています。

dockerの環境がある場合は、dockerhubにあるimageを使うと楽です。

扱う前の事前準備

データソースの設定及びsupersetを扱う前に抑えておきたい4つの概念を紹介します

  • Source(Database)
  • Source(Table)
  • Dashboard
  • Slice

Source(Dtabase)

これはデータベースへの接続に必要な情報を設定して疎通を図る部分です。下の画像の Database 及び SQLAlchemy URI のみの入力して Test Connection が出来れば大丈夫です。
Screen_Shot_2016-12-08_at_11_14_36.png

OrigamiではReashiftをデータ分析用として用意していますのでこの場合は

redshift+psycopg2://{user_name}:{pass}@{redshift-no-endpoint}.{region-name}.redshift.amazonaws.com:5439/{database_name}

といったURIになります。

Source(table)

データソースとの疎通ができたらokというわけではなくて、そのデータソースのどのテーブルを使うのかを宣言する必要があります。これを宣言しないと後述のSliceが作れません。
Screen Shot 2016-12-08 at 11.10.20.png

Slice & Dashboard

下の画像の1つ1つの枠がSliceと呼ばれています。Sliceを定義して、そのSliceを配置したまとまり(画像そのもの)がDashboardです。
Screen_Shot_2016-12-08_at_10_46_30.png

試しに1から作ってみる

では試しに何かしらのSliceを作ってみたいと思います。今回は Word Cloudを試してみました。 またデータベースは開発用のredshiftを使っています。Screen Shot 2016-12-08 at 11.49.25.png

  1. 画面上の DataSources -> Tables から Add a new record を選択。
    Screen Shot 2016-12-08 at 11.37.48.png

  2. table name & data baseを選択(table nameは任意でなく、実際のテーブル名を使わないと怒られる)
    Scree<img width=

  3. 作成したテーブル一覧画面より、テーブル名の部分をクリックするとSlice作成画面にいく(ここが分かりにくいUIだった)
    Screen_Shot_2016-12-08_at_11_43_57.png

  4. Slice作成画面
    Screen Shot 2016-12-08 at 11.49.25.png

supersetの特徴にある生クエリを書かなくてもGUIでデータを扱う事ができるというのがここで発揮されます。TimeGROUP BY というのがまさにそうですね。Data Sourcce を先ほど作ったtableにして Chart TypeWord Cloud にしてよしなに設定していくと、、

a3dbb2e3-faf5-173e-27f9-fc579b69b4d9.png

こんな感じでSliceを作る事ができます。これを保存してdashboard作成時に作ったSliceを選択すれば
Screen Shot 2016-12-08 at 12.02.21.png

このようにdashboardが出来上がります。

re:dashと比べてどうか

個人的な所感ですが比較してみました

re:dash superset
誰に向いてる? SQLに慣れてる人向き SQLに不慣れな人向き
セキュリティ クエリ別の権限設定などがない 細かい設定が可能だが、設定のUIが微妙
slack連携 対応している 対応してない
ダッシュボード Queryを2列or1列の配置 Sliceを自由に配置できる
データの見せ方 少ない 多い

もし本格的に使うとしたら

re:dashの様に2列or1列で整列された縦長のダッシュボードと違い、見た目を割と自由にカスタマイズできるので主要KPIのダッシュボードを作成して大きなモニターに表示させると全社員がいつでも見れるイケてる画面が出来るのではないかと思いました。

また、SQLに馴染みのない人がデータ出し&可視化をするとしたらredashよりもsupersetの方が、作り方さえ慣れてしまえば学習コストは低い様に思います。(re:dashだとSQLを組まないといけないのでSQL慣れしてない人にとっては障壁があるかも)

まとめ

表現豊かなデータ可視化の需要がある、もしくは需要を作っていきたいといった場合の選択肢としてsupersetは良いのではないかと思います。
Origamiでも現在検証中ですがもしかすると使う事になるかもしれません。