re:dashでデータ集計を簡易化
CTOの山田です。
毎度管理画面に運用向けの集計画面を作るの面倒だなと思って、少し前にre:dashを導入しましたのでご紹介致します。
re:dashとは
データベースを可視化するためのpython製オープンソース。データソースはMySQL、PostgreSQLからGoogle BigQuery、Redshiftまで幅広くサポート。githubはこちら Redshiftのパートナーとしてオープンソースで唯一(私が見た限りでは)認定されています。
環境構築
AWS上に構築されるのであればAMIが用意されています。
東京リージョンのAMIはap-northeast-1: ami-fae373faです。
データソースの追加
データソースの追加はサーバで行います。OSはubuntuのためログインユーザはubuntuになります。
ssh ubuntu@
manage.pyでデータソースを追加していきます。mysqlでの例です。
cd /opt/redash/current
sudo -u redash bin/run ./manage.py ds new -n <data> -t mysql -o '{"user" : "user name", "passwd" : "password", "host" : "host name", "db" : "db name"}'
redshiftはもちろんPostgreSQLで行います。
sudo -u redash bin/run ./manage.py ds new -n redshift -t pg
登録はlistコマンドで確認できます。
sudo -u redash bin/run ./manage.py ds list
--------------------
Id: 1
Name: rds
Type: mysql
Options: {"user" : "mediba", "passwd" : "xxxxxx", "host" : "xxxx.mediba.jp", "db" : "mediba"}
--------------------
Queryの追加
今回は開発環境のデータを使って実施しました。 機能はシンプルなので直感的で使いやすいです。
- re:dashにログイン
- メニューのQueries>New QueryからQuery作成画面を開きます
- Query作成画面
- 右カラムにはテーブル一覧が表示されています
- テキストエリアにSQLを記述
- “Execute"でSQLを実行
実行結果が下部に表示されます
結果をグラフで表示させたい場合は「New Visualization」から新規登録します
- グラフは「Visualization Type」から選択でき、緯度経度があればmapも使えそうです
今回は棒グラフを作成しました
登録したQueryを定期実行させる
Refresh Scheduleから実行タイミングを登録します
定期間隔での実行か時間帯指定での実行か選択出来ます
ダッシュボードの作成
メニューの「New DashBoard」からダッシュボードの作成画面を開きます
タイトル横の+ボタンから「Add Widget」を開き、登録済みQueryを選択します
運用的にはカテゴリ毎にダッシュボードを作り整理するのがいいでしょう。
こんな感じになります。
まとめ
サービス運用でデータを集計してグラフィカルに見たい要望が結構あると思いますが、re:dashを活用すれば開発工数を掛けずに実現できます。 queryで登録したデータはCSVとしても吐き出せます。
