クエリパラメータのデフォルト値について


#1

はじめまして。

version6.0.0のRedashをAWSで使っています。

クエリに投げるパラメータでdaterangeのパラメータのデフォルト値を設定したい(例えば直近1週間など)です。

少し調べた限りだとだとdashboardで該当のクエリを配置するとクエリを作ったときに設定した値が入ってくるので
データベースのqueries.optionsの中身を定期的に書き換えれば可能だと思うのですが他にいい方法がないか知っている方がいれば教えていただけますでしょうか。

宜しくお願い致します。


#3

@swfz こんにちは!

パラメータのデフォルト値は現時点で指定できないと思いますので、似たようなことをしたい場合は以下のような SQL を書いておいて

SELECT
    IF('{{ date_start }}'='default', DATE_SUB(CURDATE(), INTERVAL 7 DAY), '{{ date_start }}') date_start,
    IF('{{ date_end }}'='default', CURDATE(), '{{ date_end }}') date_end
;

date_start , date_end はそれぞれ文字列型のパラメータとして定義しておき、それぞれ値は default で保存しておいて、

https://redash.example.com/queries/1/source?p_date_start=default&p_date_end=default

と呼び出された場合はデフォルトの期間になり、

https://redash.example.com/queries/1/source?p_date_start=2018-01-01&p_date_end=2018-12-31

のように任意の期間も渡せる。というのはいかがでしょうか?

queries.options カラムの値を定期的に操作する方法でも実現可能かとは思いますが、個人的にはクエリの書き方で工夫したほうが良いかなと思います。

ちなみに私が同じ要望を Redash の利用者から聞いた場合は「パラメータを日付型にしてカレンダーから選べるようにしておくから、我慢して毎回設定して」と言うことが8割。どうしてもの場合は、「API から自動的にデータを取ってスプレッドシートに書き出しておくからそっちを見てね」というようなやりとりをしています。


#4

返信ありがとうございます!

期間選択は便利でいいんだけどデフォルト値だけなんとかできないか?というような話だったので難しそうです。。。

queries.optionsを書き換えるのはちょっとやりたくないなとは思っているものの。。。って感じで質問しました。

選択肢として提案するのはできそうなので聞いてみます!

ありがとうございます。