WonderPlanet DEVELOPER BLOG

ワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。

BIツール「re:dash」を触ってみた

最近BI(Business Intelligence)ツール巡りをしようと考えている藤岡です。

今回はBIツールの一つである、「re:dash」に触れてみたいと思います。
http://redash.io/

re:dashはPython製かつ、様々なデータストアに対応しており、
クエリを設定しておくとその結果をデータリスト化やグラフプロットしてくれます。

対応データストアは以下の5つです。

  • BigQuery
  • MySQL
  • PostgreSQL
  • Redshift
  • MongoDB

今回はBigQueryのサンプルデータを可視化してみたいと思います。


動作環境

Ubuntu 14.04.2 LTS上での動作です。

※ Google Compute EngineのLinux VM上での動作です。
※ Google Console上でウェブアプリケーションのクライアントIDを作成する必要があります。
※ 後ほど、サービスアカウントの鍵(p12)が必要になります。インストールしてLinux VM上に配置してください。

導入

公式でAmazon Web ServiceとGoogle Cloud Pratform用のAMIが配布されています。
re:dashと動作に必要な物がすでにセットアップされています。
http://redash.io/deployment/setup.html

今回はGoogle Cloud Pratform上で試してみようと思います。

※ Google Compute Engineを操作する為にgcloudコマンドが必要になります。gcloudコマンドのインストールはこちら。(公式サイト)
https://cloud.google.com/compute/docs/gcloud-compute/#install

$ gcloud compute images add redash-063-b906 gs://redash-images/redash.0.6.3.b906.tar.gz  
$ gcloud compute images add redash-063-b906-bq gs://redash-images/redash.0.6.3.b906-bq.tar.gz  
$ gcloud compute instances create  --image redash-060-b812-bq --scopes storage-ro bigquery  

インスタンス作成後、sshでログインします。

$ gcloud compute --project {your_project_id} ssh --zone "asia-east1-a"   

re:dashの設定ファイルは /opt/redash/ 配下に存在しています。
設定ファイルは /opt/redash/.env です。

/opt/redash/.envのGoogle関連の3つの要素を設定します。
先ほど作成した、クライアントIDとクライアントシークレットを設定します。

google appsを使っている場合、REDASH_GOOGLE_APPS_DOMAINにドメインを設定をすることで、
re:dashにgoogle appsドメインを持っているユーザーのみがログインできるようになります。
(下記の例だとxxxxxx@sample.comのアカウントを持っているユーザーのみre:dash上にログインできる、という意味になります)

export REDASH_GOOGLE_APPS_DOMAIN="sample.com"  
export REDASH_GOOGLE_CLIENT_ID="{クライアントID}"  
export REDASH_GOOGLE_CLIENT_SECRET="{クライアントシークレット}"  

設定の反映&re:dashを再起動します。

$ sudo supervisorctl reload  

re:dashからデータストアの設定をし、BigQueryを使うための準備をします。

http://redash.io/configuration/datasources.html
こちらの設定に従い、設定してみます。

$ cd /opt/redash/current  
$ sudo -u redash bin/run ./manage.py ds new  
Name: bigquery-sample  
Select type:  
1. bigquery_gce  
2. script  
3. url  
4. mongodb  
5. bigquery  
6. graphite  
7. pg  
8. mysql  
[1-8]: 5  
Private Key Path (required): /path/to/dir/private_key.p12  
Project ID (required): {your_project_id}  
Service Account (required): {your_service_account}  
Creating bigquery data source (bigquery-sample) with options:  
{"projectId": "{your_project_id}", "privateKey": "/path/to/dir/private_key.p12", "serviceAccount": "{your_service_account}"}  

re:dash側が設定を聞いてくるので、合わせて設定をしていきます。
最後に設定をJSON形式でアウトプットしてくれます。
{your_project_id}と{your_service_account}とプライベートキーのパスは環境に合わせて変更してください。
今回はbigquery-sampleという名前でBigQuery用のData Sourceを作成しております。

これでre:dashを使う準備ができました。
Linux VMのパブリックIPにアクセスすることでこんな感じのダッシュボードが表示されるかと思います。

redash_ダッシュボード

データを可視化してみる

それでは、クエリを作成してみましょう。
QueriesからNew Queryをクリックすると、クエリを実行画面が表示されます。

New Query

BigQueryのサンプルデータセットから適当なクエリを投げてみます。
画面左下にある、Data Sourceは先ほど作成した bigquery-sample を設定しておきます。
また、クエリは実行期間を設定しておくことも可能です。

Data_Source_Setting

Github上のレポジトリ内で、issueがあるレポジトリと無いレポジトリの数をテーブル表示してみました。

Run_Query

New Visualizationタブからグラフを追加することが可能です。
円グラフをプロットしてみました。

Pie_Chart

使用出来るグラフは以下5つです。

  • 棒グラフ
  • 折れ線グラフ
  • 円グラフ
  • 散布図
  • 面グラフ


最後に

re:dashは導入も比較的簡単で、クエリの定期実行&可視化等、便利な機能満載です。
是非お試しください。