2016年12月28日水曜日

re:dash でグラフを作成してみる

概要

前回 re:dash を使える環境を構築してみました
今回は実際にグラフを作成してみたいと思います
グラフにするデータは MySQL に格納されているものとします

環境

  • Ubuntu 16.04
  • docker 1.12.1
  • re:dash 0.11.1
  • MySQL 5.6.22

※今回紹介する方法は上記のバージョン時の WebGUI となっています、バージョンアップ等で UI が変わることが予想されるので、その点はご注意ください

基本的な流れ

MySQL にあるデータを可視化するのには

  1. データソースへの接続
  2. クエリの作成
  3. スケジューリングの設定
  4. グラフの作成
  5. ダッシュボードの作成

という流れで作成することができます
すべて WebGUI から操作することができます

これ以外にも方法はあるかもしれませんが今回は上記の流れで紹介したいと思います

データソースへの接続

データソースは今回で言えば MySQL にあたるものです
いわゆるストレージになります
データソースを追加するにはまず右上のストレージマークを選択してください
redash_basic_usage_new_datasource.png

追加画面になったら「+ New Data Source」で追加します

「Name」は好きなデータソース名を入力してください
「Type」は今回「MySQL」を選択します
すると MySQL に接続するためのホストやポート、データベース名、ユーザ名、パスワードなどを設定するフォームが表示されるのでそれぞれ自身の環境にあった MySQL の情報を入力していきます
redash_basic_usage_add_datasource.png

スクリーンショットが切れてしまっていますがユーザ名の設定は一番したにあります
入力できたら一番下にある Save を選択します

なお、この画面でのデータソースへの接続テストは現時点のバージョンではできないようです

クエリの作成

次にクエリを作成します
クエリとはその名の通り MySQL に対して発行するクエリ (SELECT 文) です
re:dash ではその結果を円グラフや折れ線グラフ、棒グラフなどに可視化することができます

トップ画面左上にある「New Query」からクエリを作成します
redash_basic_usage_new_query.png

クエリを作成する画面になったら、まずデータソースを選択します
データソースは先ほど作成した MySQL に接続するデータソースを選択します
画面真ん中あたりに「Data Source」というプルダウンメニューがあるのでそこから選択します

データソースを選択すると左ペインに操作できるテーブルの一覧が表示されると思います
そしたらあとは、それらのテーブルに対して発行するクエリを作成するだけです
右ペインにクエリを入力しましょう
今回は以下のクエリにします

SELECT v1, date_time FROM sensor_data

超単純です
sensor_data というテーブルから v1 と date_time というカラムのデータを全件取得します
v1 は integer で数値が格納されたカラムで date_time は datetime 型の日時が格納されたカラムとします
「Format Query」というボタンを押すと入力したクエリをいい感じにフォーマットしてくれます
クエリの名前や説明は適当に設定すれば OK です
redash_basic_usage_build_query.png

入力できたら「Execute」しましょう
すると下ペインにクエリの結果がずらーっと表示されると思います (もちろん、対象のデータが MySQL に格納されているのが前提です)
redash_basic_usage_test_query_ret.png

ここまでできればクエリの作成は OK です

スケジューリングの設定

スケジューリングの設定とは先ほど作成したクエリをどれくらいの間隔で実行するかという設定のことです

先ほど入力したクエリの作成画面の真ん中あたりに「Refresh Schedule Never」というリンクがあるのを確認してください
ここの「Never」を選択するとスケジューリングを設定するダイアログが表示されます
redash_basic_usage_set_schedule.png

今回は 1 分おきにクエリを実行するように設定しました
もちろん DB に負荷を掛けたくないのであれば、もっと間隔を広げても大丈夫です
プルダウンから選択すると自動で保存されるので選択した☓ボタンで閉じて OK です

これでスケジューリングの設定もできました

グラフの作成

では、次にクエリの結果をグラフにしたいと思います
今回は簡単な折れ線グラフを作成してみたいと思います

「Execute」した結果の一覧のところに「+ NEW VISUALIZATION」というボタンがあることを確認してください
これを選択します
するとグラフを作成する画面になるので設定していきます

「Visualization Type」は「Chart」を選択します
「Visualization Name」は好きなグラフの名前を設定してください
「Chart Type」は「Line」を選択します
「X Column」にクエリで取得した「date_time」、「Y Column」には「v1」を設定します

一応これでグラフの最低限の設定は完了なので、右下の「Save」を選択してください
redash_basic_usage_create_graph.png

他にも X, Y 軸の細かい設定や、グラフの色の設定もできるのでお好みで調整してください

これでクエリに対して描画するグラフの作成が完了しました

ダッシュボードの作成

ダッシュボードは作成したグラフを 1 つの View にまとめて可視化するための機能です
基本的にはグラフが複数ある場合に使いますが、今回は 1 つのグラフに対してダッシュボードを作成してみます

まず、トップ画面に戻って右上の「New Dashboard」を選択します
redash_basic_usage_new_dashboard.png

するとダッシュボードを作成する画面になります
ダッシュボードの名前はお好きなものを設定してください
redash_basic_usage_set_dashboard_name.png

ダッシュボードに作成したグラフを追加するには右上の編集ボタンから「Add Widget」を選択します
redash_basic_usage_add_widget.png

「Search a query by name」にダッシュボードに追加したいクエリの名前を入力します
今回であれば「テストクエリ1」と入力します
するとクエリが選択できるので選択し、「Choose Visualization」にクエリに作成したグラフを選択します
グラフを選択できたら「Add to Dashboard」を選択しましょう
redash_basic_usage_select_your_graph.png

するとダッシュボードにグラフが追加されます
redash_basic_usage_ret_dashboard.png

最後に

re:dash の基本的な使い方を MySQL を使って紹介しました
データソースは他にも MongoDB や Google Big Query など様々なストレージに対して接続することができます

なので、re:dash はすでにそういったストレージにある程度データが溜まっているときにそれを軽く可視化したいといった場合に、かなり使えるツールだと思います

今回は紹介しませんでしたが、他にもアラート機能などがあり閾値監視みたいなことも re:dash ではできるみたいです
その辺もおいおい試せればなと思います 

あと若干気になったのはクエリを作成しまくって DB に負荷が掛かり過ぎるといったケースが容易に発生しそうなツールだと思いました
なので、実際に運用する場合にはレプリケーションや View を作成してサービスに影響がないようにするなどの考慮が必要になってくるかなと思いました
実際に運用レベルで使ったことはないので何とも言えませんが、、、

0 件のコメント:

コメントを投稿