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の追加

今回は開発環境のデータを使って実施しました。 機能はシンプルなので直感的で使いやすいです。

  1. re:dashにログイン
  2.  メニューのQueries>New QueryからQuery作成画面を開きます
  3. Query作成画面
  4. 右カラムにはテーブル一覧が表示されています
  5. テキストエリアにSQLを記述
  6. “Execute"でSQLを実行
  7. 実行結果が下部に表示されます image

  8. 結果をグラフで表示させたい場合は「New Visualization」から新規登録します

  9. グラフは「Visualization Type」から選択でき、緯度経度があればmapも使えそうです  今回は棒グラフを作成しました image

登録したQueryを定期実行させる

  1. Refresh Scheduleから実行タイミングを登録します

  2. 定期間隔での実行か時間帯指定での実行か選択出来ます


ダッシュボードの作成

  1. メニューの「New DashBoard」からダッシュボードの作成画面を開きます

  2. タイトル横の+ボタンから「Add Widget」を開き、登録済みQueryを選択します

運用的にはカテゴリ毎にダッシュボードを作り整理するのがいいでしょう。

こんな感じになります。

image


まとめ

サービス運用でデータを集計してグラフィカルに見たい要望が結構あると思いますが、re:dashを活用すれば開発工数を掛けずに実現できます。 queryで登録したデータはCSVとしても吐き出せます。