More than 1 year has passed since last update.

こんにちは。リブセンスで分析基盤エンジニアをやっている @hiro-koba と申します。
この記事はLivesense Advent Calendar 2016 その3の11日目となっています。
弊社Advent Calendarはその3以外にその1その2もございますので、併せてご覧くださいませ。

はじめに

弊社では分析基盤を自社開発しており、サイト上の行動データを、コンバージョンデータや属性データ等と紐付けて分析可能な環境を持っております。
そこで貯まったデータを利用し、以下のような用途で使用しております。

  1. KPIモニタリング
    • 流入数・CV数などの達成状況把握
    • 異常値の発見
  2. 探索的分析
    • サイト上等に問題があった場合、ユーザーのPV単位まで遡って調査
  3. レコメンデーション
    • 行動ベースでの求人レコメンド

特に1のような用途において、「ダッシュボードツール」と呼ばれる、データをグラフなどで可視化してくれるツールを使用することが多いと思います。
今回はこのダッシュボードツールを比較してみようと思います。

紹介するツール

今回選んだのは以下の2つです。OSSで最近有名なツールという事で選定しました。

Redashは1年前のAdvent Calendarでも記事が見受けられ、すでにダッシュボードツールとして定着してきているように思えます。
対するSupersetは最近名前を聞くようになった、比較的新しいダッシュボードツールと言えるでしょう。

比較すること

ざっくり以下の様なことを比較していこうと思います。

  • 導入
    • 導入・構築容易性
  • 対応データソース
    • DB・DWH
    • データセット
  • データ操作
    • フィルタ条件指定
    • グルーピング機能
  • アウトプット
    • グラフ
    • その他アウトプット
  • 勢い
    • 開発の勢いなど

導入

さすがモダーンなサービスだけあって、両者ともに簡単に試すことが出来ました。
本番での運用等を考えた際、AMIやクラウドホスティング版があるRedashは嬉しいですね。

Superset Redash
Dockerイメージ 有(※1)
AMI (Amazon Machine Image)
クラウドホスティングサービス

※1 非公式?ならイメージ有り。DockerhubでSupersetと検索すると、いくつかのイメージがヒット。そのうちamancevice/supersetを試した所、簡単にテスト用の環境が構築出来ました

対応データソース

DB・DWH

有名所をピックアップしましたが、大体接続出来るようです。
SupersetはSQLAlchemyで接続できるか否かにかかっているようです。
(※◯とは書いていますが、自分で簡単に動かしたの限りのことと、ネット上の情報で判断しているので、完全に動作互換があるか検証はできていませんゴメンナサイm(__)m)

ちなみにTD(Presto)に接続した際にTIMESTAMP型の列が正しく認識されないバグがありますが、すでにIssueが出ており、対応中のようです(早い!)

Superset Redash
MySQL
PostgreSQL
SQLite
Redshift
TreasureData
BigQuery

Supersetのデータソース選択画面

ちょっとややこし目ですね。SQLAlchemy URIもフォーマット見ながら自分で入力する必要があります。

superset_database.png

Redashのデータソース選択画面

こちらはシンプルで、データソースを選んだら必要な項目を入力するだけで良いようになっています。

redash_database.png

その他データソース

SupersetではDB・DWHへの接続しか対応していませんが、Redashは以下のようなデータソース・データセットにも対応しています。

  • CSV
  • Google Spreadsheet
  • JIRA
  • Kibana
  • URL?

データ操作

次に、ダッシュボードに出力する内容をどのように操作できるか比較してみます。
条件を指定したデータの絞込、グルーピングなどです。

Superset Redash
UIによる操作
SQLによる操作
集計関数 全てサポート(UI操作時はCOUNT(*)とAVGとSUMのみ) 全てサポート
絞込・条件指定
グルーピング

Redashデータ操作画面

SQLを書く前提で作られています。SQLのフォーマッタや保管機能なども充実しており、SQLが書きやすい環境ではありますが、とは言えSQLを1から書く必要があります。

New_Query__Redash.png

Supersetデータ操作画面

こちらはRedashの画面とはガラッと変わり、SQLを書かせる気配がありません。グラフを最初に選び、それに必要なデータをUIから入力するだけの簡単設計です。
(Google AnalyticsのWeb UIのように、フィルタ要素等を選択しながら探索しているのと似たイメージですね)
また、SQLを書きたい場合、ナビバーの「SQL Labs」を選ぶとRedashのようにSQLからデータを可視化することが出来ます。

_explore__birth_names.png

UIといえど一応カスタムのWHERE句は追加できるようになってはいます。

_explore__birth_names2.png

UIからデータを操作する場合、集計関数はCOUNT(*)とAVGとSUMのみで、選べるものも限られています。
複雑な集計が必要な場合、事前にSQL Labsからデータ整形→データソースへの追加を行い、そこからグラフを作ると良さそうです。

_explore__birth_names3.png

アウトプット

グラフ

次に、ダッシュボードツールのメイン機能であるグラフ出力系の比較です。あまり差はなさそうですね。
(呼び方違うだけで実は同じのが合ったらごめんなさい・・・)

Table系

Superset Redash
Table view
Pivot table

Chart系

Superset Redash
Line chart
Bar chart
Area chart
Pie chart
Bubble chart
Scatter chart

その他グラフ

Superset Redash
コホート
ヒートマップ
積み上げ
地図
Treemap
Sankey
Word Cloud

その他アウトプット

Supersetには無いですが、Redashは以下のような機能も兼ね備えています。

  • アラート機能
    • クエリ結果によってHipChatやSlackなどに通知を送ることが出来ます

勢い

Supersetの方が後発ということもあり、直近のIssueやPRが多いのはさておき、Star数がすでに3倍以上あることから勢いがありそうですね。
※各数値は2016-12-11 22時現在の数字です。

Superset Redash
Star数 9885 2854
Issue数 335 159
Pull Request数 38 19

まとめ

Redash

Redashはデータの可視化だけでなく通知なども行える、万能型ダッシュボードツールでした。
SQLが書ける人にとっては補完やフォーマッタが便利ですね。
また接続可能なデータセット数もほぼ網羅している感があり、そういった点でもSupersetより一日の長があると言えるでしょう。

Superset

UIからのデータ操作が非常にシンプル&直感的で好印象でした。UIでは表現出来ない複雑な集計も、SQL Labsを使用して事前集計可能で、かなり幅広い操作が行えそうです。
(エンジニアさんが事前にSQL Labsで集計済みのデータソースを追加し、ディレクターさんがUIで条件をいじりながら分析するみたいな使い方ができそうですね)
接続可能なデータソースもRedashに比べると網羅性は低いですが、最近のDWH系は大体接続できるのであまり問題ではないでしょう。

最後に

以上、Superset vs Redashというたいそうなタイトルで比較を行いましたが、いかがでしたでしょうか。
今年こそはネタを仕込んでまとめ以外のことをやりたかったのですが、結局まとめに走ってしまいましたごめんなさい。
明日は12日目です! @nwatanabe さん宜しくお願いします!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.