docker
可視化
BI
docker-compose
superset

Supersetを導入して、DBを可視化してみた

supersetを導入して、DBを可視化してみた

はじめに

会社でエンジニアブログを書いたので、qiitaにもまとめてみました( ・∇・)
Supersetを導入して、DBを可視化してみた

概要

今回はチームの可視化ツールに superset を導入したのでその紹介をしたいと思います。
可視化ツールにsupersetを選んだ理由は特にないっす。強いて言うならまだ他のチームが使ってなかったから、
検証しよう的なノリで導入したのがきっかけです。

supersetってなんぞ?

supersetはAirbnbが開発しているOSSのBusiness Intelligence Tool(BIツール)です。
RedashやTableauに似ています。

導入

今回はdocker-composeを使ってsupersetの環境を構築したいと思います。docker便利ですね!
(※Dockerの導入に関しては割愛させていただきます)

では、さっそく進めていきましょう!

$ git clone https://github.com/amancevice/superset.git
$ cd superset
$ ls
examples  superset  Dockerfile  LICENSE  README.md  docker-compose.yml

examples以下に各ミドルウェアごとのdocker-composeの設定ファイルがあるので、好きなものを選んで試してみるのありかと!
では、さっそくsupersetの環境を作ってみます。

$ docker-compose up -d

# 初期設定
$ docker-compose exec superset superset-demo
Username [admin]: admin
User first name [admin]: admin
User last name [user]: admin
Email [admin@fab.org]:
Password:
Repeat for confirmation:

上記はアカウントの初期設定になるので、適当なもの設定してください
(※今回はデモデータがある状態でsupersetの環境を構築してます)

上記のアカウント設定が完了後、 http://localhost:8088 にアクセスすると以下の画面が表示されます。

ログイン画像.png

ここでは先ほど設定したアカウント情報を入力してください。
また、画面右上に国旗が表示されてる部分をクリックして日本語に切り替えることも可能みたいです!
(※最近知りましたw)

ログインすると、ダッシュボード画面に遷移します。

ダッシュボード.png

なにかしらクリックしてダッシュボードを確認すると、なんかイケてる画面が出てくると思います!

ダッシュボードサンプル.png

こんな感じでダッシュボードが表示されれば導入は完了です。

設定

続いて、実際にDBと連携にさせてみます。
上部メニューの[ソース]-[データベース]クリックすると以下の画面に遷移します。

データベース一覧前.png

右上の+からクリックして、データベースを作成します。

テーブル設定.png

  • Database の項目にDBの名前をつけます。
  • SQLAlchemy URI の項目にDBのURIを設定します。
    (※mysqlの場合、mysql://[ユーザー名]:[パスワード]@[URI]/[DB名]のような設定になります。その他はこちらから設定方法を確認してください。
  • Expose in SQL Lab にチェックを入れるとSQL Labからアクセス出来るようになります。

だいたいこんな感じの設定で大丈夫だと思います!(笑)
これで保存するとデータベースが作成されます。

データベース一覧後.png

次はテーブルを作成します。

上部メニューの[ソース]-[テーブル]クリックすると以下の画面に遷移します。

テーブル一覧前.png

右上の+からクリックして、テーブルを作成します。

テーブル設定.png

  • Database は先ほど作ったデータベースを選択してください
  • スキーマ は必要があれば指定してください
  • テーブル名 はDBにあるテーブルを指定してください

今回は試しにusersテーブルを作成します。

usersテーブル作成.png

テーブルの定義は以下のようになります。

usersテーブル定義.png

ちょっと雑に設定していますが、許してください(笑)
以上で設定は終わりです!

グラフ化してみよう

続いて、usersテーブルを使ってログイン回数の多い人をグラフ化してみます。
必要となるカラムは以下になります。

  • nickname
  • sign_in_count

先ほど作成したusersテーブルをクリックすると、スライスを作成する画面に遷移します。

スライス作成.png

左サイドメニューの設定

  • Datasource & Chart Type

    • Datasourceは参照元となるデータを選択するので、今回はusersになります。
    • Visualization Typeからどのように可視化したいかグラフを選んでください。今回はPieChartを選びます。
  • Query

    • Metricsの部分ではグラフ化する指標を選択してください。(※sum_sign_in_countを選択してください)
    • Group by で選択した対象でグルーピングします。今回はユーザーごとのログイン回数をみるので、ここではnicknameを選びます。

以下は任意でいろいろいじってみてください(笑)
期間やグラフのラベルなど、結構いろいろといじれるので楽しいですよ!

  • Time
  • Chart Options
  • SQL
  • Filters

最後に左上のRun Queryをクリックすると更新がかかります。

以下のようなグラフが完成しました!( ^∀^)

スライス完成.png

(※Chart Optionsとかをちょろっといじってます)

あとは、左上のSaveボタンを押すとスライスを保存することができます。
これでいつでも確認できるようになりました!

ダッシュボードをつくってみる

ダッシュボードの画面に遷移して、右上の+ボタンをクリックすると以下の画面に遷移します。

ダッシュボード作成.png

  • タイトル
  • スライス

好きなタイトルを記入し、スライスには先ほど作成したスライスを選んで保存をクリックするとダッシュボードの完成です!
以下が作成したダッシュボード画面になります。

ダッシュボード完成.png

いい感じでダッシュボードが作れたかと思います。

最後に

supersetはRedashと比べるとグラフの種類とかも豊富で、いろいろと楽しいグラフとかを作れるな〜と個人的に感じています。
私のチームでは、日毎や月間のユニークユーザー数や売上、広告の設定情報などを可視化してたりします。
広告の配信ターゲットなどで、どんなキーワードが多く設定されているとかを確認すると結構楽しいです。(下図)

キーワードターゲット.png

また最近では、リリースした機能のテーブルを可視化して監視し、しっかり使われているかなどのKPIにも使うこともあります。

いかがでしたでしょうか? みなさんがこの記事を読んで無事にダッシュボードを作れていることを祈っていますmm
最後までお読みいただきありがとうございました。