見出し画像

データの変化を見るためにRedashで実行したSQLの結果をGoogleスプレッドシートに定期的に保存する

今とあるWebサービスにおけるデザイン指標の作成に着手しています。

プロダクトの品質向上に繋ぐ「デザイン指標」を作っています

その指標となる値を見るために、Redashというツールを使っています。データはサービスのデータベースやGoogle Analyticsからとってきています。

DBのデータが欲しい場合は、アプリケーションのDBにSQLを投げて取得しています。

単純に今現在の値を表示するだけあればSQL実行して終わりなのですが、値の変化を追っていきたい場合は定期的に値をとってそれを保存しておく必要があります。

いろいろ方法はあるんでしょうけどお手軽にやりたかったので、今回は定期的にスプレッドシートにデータを保存することにしました。

つまりやることとしては

1. Redashで必要なデータを取得するSQLを準備する
2. Google App Script (GAS)を使って定期的に1のデータを取得してGoogleスプレッドシートに書き込む
3. Googleスプレッドシートにためたデータを逆にRedash側で読み込んで、グラフを表示する

です。

Redashの使い方やGASの定期実行、スプレッドシートについての情報は検索すればたくさん出てくるので、GASでデータを取得してスプレッドシートに書き込むスクリプトだけ書いておこうと思います。
まぁ難しいことは何もしていないのですが。

やっていることは、

1. 書き込み先のスプレッドシートを取得
2. 最新のデータを取得するためSQLを実行する(RedashのAPI)
3. SQLの実行結果をCSVで取得(RedashのAPI)
4. CSVの先頭に日付を挿入
5. CSVをスプレッドシートに書き込む

です。

2と3に関しては、使うAPI KEYが異なるので注意が必要です。
(User API KeyとQuery API Key)

データ取得日もほしいので、4で日付をCSVに追加していますが、SQL側であらかじめ追加しちゃっておいてもいいかもしれませんね。

5でスプレッドシートを更新していますが、SQL側で取得する項目が変わってもいいように1行目の項目名を毎回更新するようにしています。
(まぁ項目とデータの列がずれてしまったら意味がないですが…おしりに追加されるのであれば)
そしてデータが入っている一番最後の行の下に取得したデータを書き込んでいます。

というように一度スプレッドシート(GAS)をかませることでデータの変遷を見える化しています。
もっといいやり方あればいいなぁ

※スプレッドシートのデータをRedashに取り込む方法は以下を参照しました
Googleスプレッドシートの値をRe:dashに取り込む

この記事が気に入ったらサポートをしてみませんか?