オープンソースのデータ可視化ツールのre:dashでらくらく分析共有 その１ 〜 インストール編

* [オープンソースのデータ可視化ツールのre:dashでらくらく分析共有 その１ 〜 インストール編](http://qiita.com/wapa5pow/items/9e3feb19c0e7c80476d0#_reference-a6d2407ea33d8742da0d)
* [オープンソースのデータ可視化ツールのre:dashでらくらく分析共有 その２ 〜 グラフ編](http://qiita.com/wapa5pow/items/1455222b519946dc16db)
* [オープンソースのデータ可視化ツールのre:dashでらくらく分析共有 その３ 〜 Google Spreadsheets編](http://qiita.com/wapa5pow/items/312686403700a8e454df)
* [オープンソースのデータ可視化ツールのre:dashでらくらく分析共有 その４ 〜 pivot table編](http://qiita.com/wapa5pow/items/0d7ab1735ba4137f141c)

ウェブサービス、ソーシャルゲームなどを運営していると数値データがたまります。
その数値データを分析して、次の施策に活かすのが非常に大事です。

生のデータをMySQLなどを叩いて、数値に出して、Excelにグラフを貼り付けるのもいいですが、毎回やっていると工数がとられます。
ディレクター、エンジニア、だれでも出したい数値が自分で出せるのが理想です。

Tableauなどのツールもありますがいかんせん値段がたかくて手がだせません。
１人ならまだしも、チームで共有したい場合はライセンス料が何十万にもなってしまいます。

そこでオープンソースのre:dashです。（ただSQLを叩く必要あがるというのはありますが）

# 環境

EC2でAmazon Linuxの最新を作成したものを想定してます。
Amazon Linux AMI 2015.09.1 (HVM), SSD Volume Type - ami-383c1956

# re:dash

![re:dash](https://camo.githubusercontent.com/e6303af147e2dbc7f3a5eda4c5769229d1ad81fa/68747470733a2f2f7261772e6769746875622e636f6d2f6765747265646173682f7265646173682f73637265656e73686f74732f73637265656e73686f74732e676966)

re:dashはRedshiftやMySQLなどのデータソースと連携してそのデータをビジュアライズしてくれます。
re:dash自体Webサーバになっているので、ビジュアライズされたデータが、ブラウザで確認できます。
しかも、re:dashはオープンソースなので無料で構築できます。

しかし、自分でmac上や、EC2のAmazon Linux上に構築してみましたがかなりインストールがつらいです。
nginx, gunicorn, supervisord, celery, redis, postgresqlなど慣れていればいいものの知らないと、構築できないときのデバッグが大変です。
そもそも、Amazon Linuxのスクリプトはあるのですが、すでにそのスクリプトが壊れているのでインストールできません。

UbuntuやDockerなら楽っぽいのですが、自分はAmazon Linux上で構築したかったのです。
そこで、re:dashをforkして、インストールスクリプトを直し、AnsibleでEC2にインストールできるようにしました。

# リポジトリ

* https://github.com/wapa5pow/ansible-redash-amazon-linux
* ansible-redash-amazon-linuxで使っているforkされたre:dash
    * https://github.com/wapa5pow/redash

## 構成

re:dashはFlaskを使っているので、もし直したかったらpythonでごにょごにょできそうです。
nginxが前にたってますが、別になくてもいい気はします。
re:dashはメインのDBがPostgreSQLです。MySQLはre:dashだけならいらないのですが、データソースとして使いたいのでインストールしてあります。

![server_pptx.png](https://qiita-image-store.s3.amazonaws.com/0/30079/38c852b8-298e-e47d-ecf0-b5bb22a9dab8.png "server_pptx.png")

## インストール手順

以下の通りやればインストールできます。Ansibleはインストールしておいてください。

    クローン
    git clone https://github.com/wapa5pow/ansible-redash-amazon-linux
    
    hostsをEC2のものにする。EC2はsshとhttpのポートをあけておく
    cd ansible-redash-amazon-linux
    vi hosts
    
    your-private-key.pemをEC2のSSH用秘密鍵に設定して以下を実行
    ansible-playbook site.yml --private-key=~/.ssh/your-private-key.pem -u ec2-user -i hosts

    Ansibleが失敗する場合は、上記の同じコマンドをもう一度うつと成功します。

# re:dashの使い方

## ログイン

admin/adminでログインします。

![re_dash_Login.png](https://qiita-image-store.s3.amazonaws.com/0/30079/155e28e6-5e11-9cf3-cb06-83e9dbae8a78.png "re_dash_Login.png")

## データソースの追加

re:dashは各種データベースにつなげるのですが、同じインスタンス上にインストールしてあるMySQLを追加するため以下のようにします。

![re_dash___Data_Sources.png](https://qiita-image-store.s3.amazonaws.com/0/30079/5dffbe71-fba5-7206-f392-24c9a91df195.png "re_dash___Data_Sources.png")

![re_dash___Data_Sources.png](https://qiita-image-store.s3.amazonaws.com/0/30079/6a8bd068-c051-8659-e70b-a9008fb20756.png "re_dash___Data_Sources.png")

## クエリの作成

データソースを作成したらクエリを作成します。

![re_dash___Country_Analytics.png](https://qiita-image-store.s3.amazonaws.com/0/30079/7f0c4532-4e13-9b62-a423-c3b6dea3b4a9.png "re_dash___Country_Analytics.png")


## ビジュアライゼーション

発行したクエリから同じ画面の下のほうにある、「+New Visualization」からグラフなどが作れます。

![re_dash___Country_Analytics.png](https://qiita-image-store.s3.amazonaws.com/0/30079/daed1a0b-42e9-d12c-ddc1-967956c0c0ca.png "re_dash___Country_Analytics.png")


## ダッシュボードの作成

ビジュアライズしたグラフを集めて、ダッシュボードが作れます。ここにまとめておけば定期的なKPI確認が楽そうです。

![re_dash___Home.png](https://qiita-image-store.s3.amazonaws.com/0/30079/590ab219-32a3-2df7-c6c5-cda578b20cd6.png "re_dash___Home.png")

![re_dash___Home.png](https://qiita-image-store.s3.amazonaws.com/0/30079/8e8081b2-77a8-9838-793f-5502b3b53e85.png "re_dash___Home.png")

![re_dash___国ごとの統計.png](https://qiita-image-store.s3.amazonaws.com/0/30079/3b06bd36-55d3-080b-cbb4-fb6e3170b7c4.png "re_dash___国ごとの統計.png")


![スクリーンショット_2016-01-26_12_13_02.png](https://qiita-image-store.s3.amazonaws.com/0/30079/6a664eb8-4435-6a37-da20-de92d9bb409c.png "スクリーンショット_2016-01-26_12_13_02.png")

# まとめ

* 最初に示したAnsibleを使えば簡単にEC2 Amazon Linux上にre:dashが構築できます
* re:dashはいままで有料でしか構築できなかったようなWeb上でのビジュアライゼーションを無料でできます
* ただし、SQLを発行する必要があるのですが、ビジュアライゼーション自体はSQLなしでできます

次回は、どのようなビジュアライゼーションが出来るのか紹介します。