パラボラアンテナと星の日記

あることないこと

re:dashをdocker-composeで動かしたら簡単だったぜ 2016年6月

この記事では、re:dashをdockerで一通り動かすことをやってみます。

re:dashとは

こんな感じでデータをビジュアライズできるツールです。

f:id:hoppie:20160619095542g:plain

(↑公式ドキュメントより拝借)

re:dashの特徴は以下のとおりです。

  • 取り込むことのできるデータの形式が豊富!!
    • BigQuery, TD, ElasticSearch, GoogleSpreadSheet, 任意のURL, etc.
  • アラート機能(メール)もある!!

動かす

AWS, GCEで専用マシンイメージが配布されているようですが、

今回はdocker composeを使って自分のOSX内で実行してみました。

docker compose

Setupを読んで手順通りにやっていきます。

1. Make sure you have a Docker machine up and running.
2. Make sure your current working directory is the root of this GitHub repository.
3. Run docker-compose up postgres.
4. Run ./setup/docker/create_database.sh. This will access the postgres container and set up the database.
5. Run docker-compose up
6. Run docker-machine ls, take note of the ip for the Docker machine you are using, and open the web browser.
7. Visit that Docker machine IP at port 80, and you should see a Re:dash login screen.

それぞれの項目をシェルスクリプトで書いてみました。

## 1.Make sure you have a Docker machine up and running.
# docker-machineが動いているかどうかを確認します。
docker-machine ls
# devマシンとかが表示されればよいでしょう。

## 2. Make sure your current working directory is the root of this GitHub repository.
go get github.com/getredash/redash
# 今作ったところに移動
cd $GOPATH/src/!$

## 3. Run docker-compose up postgres.
# 先にdocker-compose.ymlを作る必要があります。
# 本格運用時には変数REDASH_COOKIE_SECRETは値を変更するべきであることに注意。
# その他の環境変数は変更しなくてもとりあえず動作しました。
mv docker-compose-example.yml docker-compose.yml
# データベースのセットアップのため、postgresコンテナだけ先に起動します。
docker-compose up postgres

## 4. Run docker-compose up postgres.
# 起動したら、別窓を開き、以下のコマンドを実行しセットアップを実行。
./setup/docker/create_database.sh

## 5. Run docker-compose up
# 全てのコンテナ(postgres、redis、redash本体、nginx)を起動します。
docker compose up

## 6. Run docker-machine ls, take note of the ip for the Docker machine you are using, and open the web browser.
## 7. Visit that Docker machine IP at port 80, and you should see a Re:dash login screen.

# docker-machineが動いているIPの80番ポートでre:dashが動いているはず。

re:dash動きました!!!

初回はEmail:admin Password:adminでログインできます。

f:id:hoppie:20160619095817p:plain

完!docker-composeとredashに慣れていればここまで数分だと思います!

おまけ: BigQueryのデータ投入してみる

せっかくなのでデータ投入してみます。

  • BigQueryデータソースの追加
  • クエリ・グラフ作成

BigQueryデータソースの追加

先にBigQueryが利用できるGCPのプロジェクトが必要です。

re:dashが自分のプロジェクトのBigQueryのデータにアクセスできるように、サービスアカウントを準備します。

サービスアカウントは、GCPのこちらのページから作成できます。

以下の様な感じで入力し、JSONのほうを取得。

f:id:hoppie:20160619101905p:plain

データソースの作成画面で以下の様な感じで入力、今取得したJSONをアップロードし、SAVE。

1回のクエリのスキャン上限は1000MBまでにしてみました。

f:id:hoppie:20160619101840p:plain

クエリ画面で自分のプロジェクトのBigQueryのテーブルが使えるようになりました!

f:id:hoppie:20160619102533p:plain

クエリ・グラフ作成

re:dashでは 1つのQueryが1つのTableを持ち、 1つのQueryがN個のVisualization(グラフ等)を持つ、というデータ構造のようです。

今回はBigQueryの謎サンプルデータ(nyc-tlc.green、たぶんニューヨークのタクシー会社の乗降記録)を利用してみました。

日付とレコード数を出力。こんな感じ。

f:id:hoppie:20160619103400p:plain

+New Visualization を押してポチポチしていくと折れ線グラフが作れます。

f:id:hoppie:20160619103801p:plain

このタクシーの乗降記録には、緯度経度情報もありました。せっかくなのでMapを利用してみます。

こんな風にSELECT文を書く。

f:id:hoppie:20160619110153p:plain

こうなる。どん!

f:id:hoppie:20160619110126p:plain

? ? ?

参考: 今回動かした環境

  • re:dashのバージョン: 0.11。6/18時点のmaster。(8df822eee)
  • その他:
$ docker --version; docker-machine --version; docker-compose --version
Docker version 1.8.2, build 0a8c2e3
docker-machine version 0.4.1 (e2c88d6)
docker-compose version: 1.4.2

参考文献:

  1. Setting up Re:dash instance — Re:dash documentation
  2. ryotarai.hatenablog.com
  3. github.com