2017.03.06
データ分析のため、Supersetを試してみた
はじめに
こんにちは!次世代システム研究室のDLです。
今回はデータ分析のためのダッシュボードとして「Superset」を試してみました。
モチベーション
・新しいものを試してみたい。
・データ分析をしやすくするためのデータ可視化ツールを利用してみる。
・できればサポート側(非エンジニア)でも簡単にデータ利用できるツール。
Supersetとは
・airbnbが公開しているOSSのBI(Business Intelligence)ツール。
・元のプロジェクト名は「Panoramix」で2016年3月に「Caravel」に名前が変わって今は「Superset」とのプロジェクト名になりました。
airbnbのインフラから見るSuperset
・airbnbではどのように利用されているのか気になったので調べてみました。
・下記の図で「Panoramix」が「Superset」です。
こちら全文が書いているブログの記事です。
内部構成
・ベースは※Flask Frameworkで作られたウェブアプリケーションです。
・DBはMySQL/SqlLite/PostgreSQLなどが選べますが、今回はMySQLにしました。
・素敵なグラフを書いてくれているのは※NVD3。
・PANDA(Python Data Analysis Library)を利用。
※ Flask FrameworkはPythonのMicroframework。
※ NVD3はd3.jsを利用して再利用可能なチャットが作成できるライブラリ。
環境設定は
今回はdockerイメージを利用するので事前準備としてdocker-composeを利用できるようにしてから
DockerHubのイメージを利用すれば簡単に検証用で利用できます。
git clone [email protected]: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の機能
Security
・ユーザーの管理やユーザーごとのロール管理が可能。
・ロールはAdmin, Alpha, Gammaがある。
・Admin – すべての権限を持つ。
・Alpha – ユーザー管理権限を除く、すべての権限。
・Gamma – SlicesとDashboardのアクセス権限のみ。
・ユーザーごとの細かい権限のカスタマイズ可。
Manage
・DashboardのImport。
・ログインしたユーザーが実行したQueryの履歴閲覧・修正可。
・テンプレートのカスタマイズで利用するCSSの登録。
Sources
・連結したデータベース管理。
・現状対応しているライブラリ。(ver 0.17.0)
Slices
・Dashboardに配置する用のグラフ、テーブルを作成。
Dashboards
・作成したSlicesを組み合わせて、下記のようなDashboardが作れますー!
・グラプの大きさや場所も自由に変更できます。
SQL Lab
・Reactで作られたSQL IDEです!ここで直接SQL文を書けます。
・SQLを書けない方ても左側のSelect BoxによるSQL実行もできます!
・下記はSQLEditorのページ。
参考リンク
最後に
まだ検討中のものでありますが、非常に良いです。
UIからの動作がやりやすくてサービス上に何か問題があった場合にも
エンジニアではない方も調査できたり、レポート作成が可能になります。
もちろんのことですがSQLもかけるようになっており複雑な集計もできるようになっています。
次世代システム研究室では、アプリケーション開発や設計を行うアーキテクトを募集しています。アプリケーション開発者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。
皆さんのご応募をお待ちしています。
グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。
Follow @GMO_RD