Re:dash スプレッドシートにAPIを使用してQueryデータ取得する方法

Redashで作成したQueryをAPIで取得してスプレッドシートで表示する方法を紹介します。

URLの形式だけを必要な場合は

準備

Re:dashのデモサイトを使い説明します。

http://demo.redash.io/

アカウント登録、ログインを済ませたら次のステップへ

APIのURLを取得

Queryを開きます。 サンプルは下記URLへアクセスしてください。 http://demo.redash.io/queries/6671#table


クエリの結果が表示されます。
[Queryの結果画面] f:id:kuronekopunk:20180408141624p:plain Show Source をクリック


実行しているSQLのクエリが表示されます。
[Queryの詳細画面] f:id:kuronekopunk:20180408141632p:plain ... -> Show API Key をクリック


API Key, API URLのモーダルが開きます。
[API Key, API URLのモーダル] f:id:kuronekopunk:20180408141637p:plain Results in CSV format: の項目をコピー

※ 古いバージョンのRe:dashだとここでAPIしか表示されない場合があります。
 その場合は次の項目API用のURLを作成 を参考にAPIキーをコピーし自身でAPI用のURLを作成してください。

API用のURLを作成(APIキーのみしが表示されなかった場合)

Results in CSV format: が表示されなかった場合、API Keyをコピーしてください。

API用のURLは下記フォーマットになります。

http://<Re:dashのURL>/api/queries/<クエリの番号>/results.csv?api_key=<APIキー>

今回のサンプルでは - <Re:dashのURL> -> demo.redash.io - <クエリの番号> -> 6671 - <APIキー> -> 4DPIRmfFVMW8vJZaYALcRh3LgTkEZdfiAd9WXVnJ

URLはこのようになります。

http://demo.redash.io/api/queries/6671/results.csv?api_key=4DPIRmfFVMW8vJZaYALcRh3LgTkEZdfiAd9WXVnJ

Googleスプレッドシートで読み込み

データの読み込みには IMPORTDATA を使います。

IMPORTDATA - ドキュメント エディタ ヘルプ

セルには以下の通り設定します。

=IMPORTDATA("http://demo.redash.io/api/queries/6671/results.csv?api_key=4DPIRmfFVMW8vJZaYALcRh3LgTkEZdfiAd9WXVnJ")

データが読み込まれました。

f:id:kuronekopunk:20180408142943p:plain

このままでは日付が数値になってしまっているので - A列を選択 - [表示形式] -> [数字] -> [日付]

をして日付に変更しましょう

f:id:kuronekopunk:20180408143259p:plain

これで無事スプレッドシートでRe:dashのデータが見られるようになりました。

f:id:kuronekopunk:20180408143340p:plain

クエリの更新やデータ反映をする方法

GoogleスプレッドシートIMPORTDATA は数時間おきに更新してくれるようですがタイミングを制御することはできません。
すぐにでも変更を反映したい場合は、一度 IMPORTDATA 内のURLを別のものに変えてから戻すなどすると再読込してくれます。