Edited at

Superset vs Redash

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 さん宜しくお願いします!