2017.03.06

データ分析のため、Supersetを試してみた


superset logo

はじめに

こんにちは!次世代システム研究室のDLです。
今回はデータ分析のためのダッシュボードとして「Superset」を試してみました。

モチベーション

・新しいものを試してみたい。
・データ分析をしやすくするためのデータ可視化ツールを利用してみる。
・できればサポート側(非エンジニア)でも簡単にデータ利用できるツール。

Supersetとは

・airbnbが公開しているOSSのBI(Business Intelligence)ツール。
superset0
・元のプロジェクト名は「Panoramix」で2016年3月に「Caravel」に名前が変わって今は「Superset」とのプロジェクト名になりました。
superset1

airbnbのインフラから見るSuperset

・airbnbではどのように利用されているのか気になったので調べてみました。
・下記の図で「Panoramix」が「Superset」です。
airbnb_infra
こちら全文が書いているブログの記事です。

内部構成

・ベースは※Flask Frameworkで作られたウェブアプリケーションです。
flask
・DBはMySQL/SqlLite/PostgreSQLなどが選べますが、今回はMySQLにしました。
・素敵なグラフを書いてくれているのは※NVD3
PANDA(Python Data Analysis Library)を利用。
※ Flask FrameworkはPythonのMicroframework。
※ NVD3はd3.jsを利用して再利用可能なチャットが作成できるライブラリ。

環境設定は

今回はdockerイメージを利用するので事前準備としてdocker-composeを利用できるようにしてから
DockerHubのイメージを利用すれば簡単に検証用で利用できます。
git clone git@github.com:amancevice/superset.git
cd superset
docker-compose up -d redis mysql
docker-compose up -d superset
docker-compose exec superset demo
終わってAdminアカウントを設定すれば簡単にサービスが利用できます!
こんなに簡単にできるのはすごいですね!
設定がすべて完了であればこちらへ
http://localhost:8088/

メニューから見るSupersetの機能

menu
Security
・ユーザーの管理やユーザーごとのロール管理が可能。
・ロールはAdmin, Alpha, Gammaがある。
・Admin – すべての権限を持つ。
・Alpha – ユーザー管理権限を除く、すべての権限。
・Gamma – SlicesとDashboardのアクセス権限のみ。
・ユーザーごとの細かい権限のカスタマイズ可。

Manage
・DashboardのImport。
・ログインしたユーザーが実行したQueryの履歴閲覧・修正可。
・テンプレートのカスタマイズで利用するCSSの登録。

Sources
・連結したデータベース管理。
・現状対応しているライブラリ。(ver 0.17.0)
superset_support_db

Slices
・Dashboardに配置する用のグラフ、テーブルを作成。

Dashboards
・作成したSlicesを組み合わせて、下記のようなDashboardが作れますー!
・グラプの大きさや場所も自由に変更できます。
superset-data-1

SQL Lab
・Reactで作られたSQL IDEです!ここで直接SQL文を書けます。
・SQLを書けない方ても左側のSelect BoxによるSQL実行もできます!
・下記はSQLEditorのページ。
sqleditor

参考リンク

Supersetの公式ドキュメント

最後に

まだ検討中のものでありますが、非常に良いです。
UIからの動作がやりやすくてサービス上に何か問題があった場合にも
エンジニアではない方も調査できたり、レポート作成が可能になります。
もちろんのことですがSQLもかけるようになっており複雑な集計もできるようになっています。

次世代システム研究室では、アプリケーション開発や設計を行うアーキテクトを募集しています。アプリケーション開発者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。

皆さんのご応募をお待ちしています。