Redash v8の導入と使い方（ちょこっと）

レポート画面を作るのがめんどくさかったので、
しばらくの間、SQLを叩いてCSV出力して提出していたのですが、
とうとうめんどくさくなったので、Redash で代用してみました。

初めてBIツールを使ってみたのですが、結構いい感じに利用できたので、
ざっくりとした使用感を含め導入方法をまとめていきたいと思います！

# Redashってなに？
（ざっくりですが）SQLクエリからレポート画面が作れるものです。
グラフを表示したり、WHERE句用にパラメータ埋め込みも簡単にできます。
CSV、エクセルファイルも簡単に出力でき、外部連携にも優れています。

# 実行例

データ表示をするだけなら、クエリを実行するだけで簡単にできます！

```
SELECT * FROM `users`
```

<img width="1391" alt="pikari-users.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/2781bbe6-5906-5fe3-fa8e-54613a5cffbd.png">

# インストール方法
Redash が公式で配布されてる `setup.sh` 叩いたら、
dockerとnginx, postgres, redis のインストールから設定まですべてやってくれました。

ぜひ、空のubuntu を立ち上げてインストールしてみてください。

getredash/setup: Setup scripts for Redash Cloud Images
https://github.com/getredash/setup

```bash
% git clone https://github.com/getredash/setup
% cd setup
% sh ./setup.sh
% curl localhost:80 # 動作確認
```

AMIやDockerイメージ等、別のやり方を検討したい場合はこちらをご参照ください :bow:

Setting up a Redash Instance
https://redash.io/help/open-source/setup

# 使い方
データソースとしてDBの設定を入力して、Query作成でSELECT文を書くだけで簡単にデータが表示できます。
画像付きで説明していきます。

## データソースとしてDB追加

右上のメニューから `Data Sources` を選んで…
<img width="278" alt="スクリーンショット 2019-11-27 13.44.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/c2be3647-f23e-ffbc-d5b5-b8e315a36da7.png">


いい感じに入力するだけ！
<img width="802" alt="datasource-input.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/64d405fe-1942-74ca-7c5c-1359487dc3af.png">


## Queryの作成
ここから `Query` を選択
<img width="535" alt="スクリーンショット 2019-11-27 13.42.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/7a28e41c-e900-9b91-3d4f-ce2bc4d5a7df.png">


Query（SELECT文）を書いて、再生ボタン▶を押せばテーブルが出ます
<img width="1391" alt="pikari-users.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/2781bbe6-5906-5fe3-fa8e-54613a5cffbd.png">
こんなかんじ

## パラメータ埋め込み
日付でサマリしたい、ユーザ名で絞り込みたい場合ってやっぱり出てきますよね。
そういうときは、 `クエリにパラメータを仕込む` ことができます。

```
SELECT * FROM USER
WHERE `created_at` BETWEEN "{{ date.start }} 00:00:00"
                   AND "{{ date.end }} 23:59:59"
```

## パラメータ設定
クエリ入力画面に、パラメータ追加ボタンがあるのでこちらをクリックすると

<img width="264" alt="スクリーンショット 2019-11-27 14.06.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/8b003a90-c5c9-2df1-afc2-d4c9c6dd12b6.png">

パラメータ入力画面がでます。今回は `Date Range` を選択しました。
<img width="592" alt="スクリーンショット 2019-11-27 14.07.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/ebbbb9de-0319-74d9-512b-f189e17ecc0c.png">

そうすると `date` フォームが出てきます
<img width="351" alt="スクリーンショット 2019-11-27 14.10.07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/637fc843-448d-3f46-8226-a595436be33f.png">

クリックすると日付フォームが…！
<img width="549" alt="スクリーンショット 2019-11-27 14.09.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/b3d6441d-cc6d-4773-38de-2802729c8e29.png">

これで、クエリ文中に `{{ date.start }}`, `{{ date.end }}` と入力すると変数として使用することができるようになります。これでクエリへの日付組み込みが楽にできそうですね！
<img width="707" alt="スクリーンショット 2019-11-27 14.05.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/49cec6ff-3c00-9d6f-6f23-987cae1220b2.png">

# さいごに
ざっくりと導入から使い方まで紹介してみましたが、いかがだったでしょうか。
Redashのインストールから欲しかったレポートが表示できるまで、大体2-3時間ぐらいでできたので、楽に導入できるかと思います。

簡単なレポート作成画面が必要であれば、ぜひ使ってみてください！