redash パラメータを動的に変えてクエリを実行する

はじめに

redashはとても便利だが、パラメータを動的に変えてクエリを投げる様な事はオフィシャルにはできない

しかし、それもサードパーティを利用し、少し手を加える事で実現可能になる。

検証環境の構築

サンプルをダウンロード

サンプルのredashと、適当なデータが入ったmysqlをダウンロード

セットアップ

http://localhost/setup

へ接続するとセットアップ画面が表示されるので入力する

ログインすると、右上のメニューから Edit Profile を選択する

API keyが表示されるのでひかえる

データソースにmysqlを追加する

設定は以下の通り

 この時、保存した際のURLを確認する

/data_sources/1 とある。

これがデータソース番号となる。今回登録したデータソースは1番ということがこれでわかる。

クエリを書く

このクエリを書くと、下にテキストボックスが表示される

これでExecuteボタンを押すと、where CountryCode = “JPN” が実施される

クエリを保存すると、以下の様なURLになっている

後ろにパラメータがついているがそれは無視すると、クエリ番号1番となっていることがわかる。

 

/redash_client をインストールする

https://github.com/mozilla/redash_client

mozillaでredash clientというものが存在している。

これを ariarijp さんが改修してくれていた。神!

(今現在masterに取りこめられていないが、非常に便利な機能だ)

差分が公開されているので、これを元にオリジナルのmozillaを一部改修する

https://github.com/mozilla/redash_client/pull/70/files#diff-80f7450d3a8b47a2d0a622873d1a67fe

これにより、動的クエリを受け付けることができるようになる

 

 

その後、環境変数に

REDASH_API_KEY

をセットする

実行結果

scriptのcodeを変えて実行

取得結果が変わった。

色々活用できる場がありそうだ。