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 にアクセスすると以下の画面が表示されます。
ここでは先ほど設定したアカウント情報を入力してください。
また、画面右上に国旗が表示されてる部分をクリックして日本語に切り替えることも可能みたいです!
(※最近知りましたw)
ログインすると、ダッシュボード画面に遷移します。
なにかしらクリックしてダッシュボードを確認すると、なんかイケてる画面が出てくると思います!
こんな感じでダッシュボードが表示されれば導入は完了です。
設定
続いて、実際にDBと連携にさせてみます。
上部メニューの[ソース]-[データベース]クリックすると以下の画面に遷移します。
右上の+
からクリックして、データベースを作成します。
-
Database
の項目にDBの名前をつけます。 -
SQLAlchemy URI
の項目にDBのURIを設定します。
(※mysqlの場合、mysql://[ユーザー名]:[パスワード]@[URI]/[DB名]
のような設定になります。その他はこちらから設定方法を確認してください。 -
Expose in SQL Lab
にチェックを入れるとSQL Labからアクセス出来るようになります。
だいたいこんな感じの設定で大丈夫だと思います!(笑)
これで保存するとデータベースが作成されます。
次はテーブルを作成します。
上部メニューの[ソース]-[テーブル]クリックすると以下の画面に遷移します。
右上の+
からクリックして、テーブルを作成します。
-
Database
は先ほど作ったデータベースを選択してください -
スキーマ
は必要があれば指定してください -
テーブル名
はDBにあるテーブルを指定してください
今回は試しにusers
テーブルを作成します。
テーブルの定義は以下のようになります。
ちょっと雑に設定していますが、許してください(笑)
以上で設定は終わりです!
グラフ化してみよう
続いて、usersテーブルを使ってログイン回数の多い人をグラフ化してみます。
必要となるカラムは以下になります。
- nickname
- sign_in_count
先ほど作成したusers
テーブルをクリックすると、スライスを作成する画面に遷移します。
左サイドメニューの設定
-
Datasource & Chart Type
- Datasourceは参照元となるデータを選択するので、今回は
users
になります。 - Visualization Typeからどのように可視化したいかグラフを選んでください。今回は
PieChart
を選びます。
- Datasourceは参照元となるデータを選択するので、今回は
-
Query
- Metricsの部分ではグラフ化する指標を選択してください。(※
sum_sign_in_count
を選択してください) - Group by で選択した対象でグルーピングします。今回はユーザーごとのログイン回数をみるので、ここでは
nickname
を選びます。
- Metricsの部分ではグラフ化する指標を選択してください。(※
以下は任意でいろいろいじってみてください(笑)
期間やグラフのラベルなど、結構いろいろといじれるので楽しいですよ!
- Time
- Chart Options
- SQL
- Filters
最後に左上のRun Query
をクリックすると更新がかかります。
以下のようなグラフが完成しました!( ^∀^)
(※Chart Optionsとかをちょろっといじってます)
あとは、左上のSave
ボタンを押すとスライスを保存することができます。
これでいつでも確認できるようになりました!
ダッシュボードをつくってみる
ダッシュボードの画面に遷移して、右上の+
ボタンをクリックすると以下の画面に遷移します。
- タイトル
- スライス
好きなタイトル
を記入し、スライスには先ほど作成したスライスを選んで保存をクリックするとダッシュボードの完成です!
以下が作成したダッシュボード画面になります。
いい感じでダッシュボードが作れたかと思います。
最後に
superset
はRedashと比べるとグラフの種類とかも豊富で、いろいろと楽しいグラフとかを作れるな〜と個人的に感じています。
私のチームでは、日毎や月間のユニークユーザー数や売上、広告の設定情報などを可視化してたりします。
広告の配信ターゲットなどで、どんなキーワードが多く設定されているとかを確認すると結構楽しいです。(下図)
また最近では、リリースした機能のテーブルを可視化して監視し、しっかり使われているかなどのKPIにも使うこともあります。
いかがでしたでしょうか? みなさんがこの記事を読んで無事にダッシュボードを作れていることを祈っていますmm
最後までお読みいただきありがとうございました。