最近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にアクセスすることでこんな感じのダッシュボードが表示されるかと思います。
データを可視化してみる
それでは、クエリを作成してみましょう。
QueriesからNew Queryをクリックすると、クエリを実行画面が表示されます。
BigQueryのサンプルデータセットから適当なクエリを投げてみます。
画面左下にある、Data Sourceは先ほど作成した bigquery-sample を設定しておきます。
また、クエリは実行期間を設定しておくことも可能です。
Github上のレポジトリ内で、issueがあるレポジトリと無いレポジトリの数をテーブル表示してみました。
New Visualizationタブからグラフを追加することが可能です。
円グラフをプロットしてみました。
使用出来るグラフは以下5つです。
- 棒グラフ
- 折れ線グラフ
- 円グラフ
- 散布図
- 面グラフ
最後に
re:dashは導入も比較的簡単で、クエリの定期実行&可視化等、便利な機能満載です。
是非お試しください。