🔡

Redash の QRDS でクエリパラメータを使う方法

に公開

概要

執筆時点のドキュメントでは以下の記載があり、QRDS でクエリパラメータは使えないとされています

The QRDS doesn’t work with results from queries that use parameters.
If you try it you’ll see Error running query: Failed loading results from query id xxxx.
Remove the parameters from query_xxxx to fix the error.

過去の PR を追ったところ執筆時点で QRDS でのクエリパラメータの利用は実装済みであり、ドキュメントが古い状態でした
この PR を見つけるまで対応方法がわからなかったので、この記事が同様に困っている方の助けになればと思います

使い方

PR に記載されている文章の引用になりますが、基本的なフォーマットは以下です
param_query_<query_id>_{<URL ENCODED KEY=VALUE PARAMETER STRING>}
この書き方はクエリをキャッシュする場合の cache_query_ と同様のフォーマットになります

使用例

データソースとなるクエリは以下とします(ID:123)

SELECT name
FROM users
WHERE users.id = {{id}}

QRDS で呼び出す場合は query_123 の形になりますが、ここに上記フォーマットでクエリパラメータを渡すことができます

SELECT a.name
FROM param_query_123_{id=1}

QRDS で定義したパラメータをデータソースに渡す場合は以下になります(パラメータ id を定義したと想定)

SELECT a.name
FROM param_query_123_{id={{id}}}

備考

ドキュメントについては PR 作成済みなので無事マージされたらそのうち更新されると思います
https://github.com/getredash/website/pull/831

EGSTOCK,Inc.

Discussion