Re:dash運用開始前のデータに関しての質問です。

定期実行のデータをmetadataに蓄積し、ほしいクエリのquery_resulutsを取ってきて、retrieved_atを元にグラフ化するという使い方をしております。
[グラフ化のクエリ]

select ((data::json->'rows')::json->>0)::json->'count(*)' as data, retrieved_at 
from query_results 
where query_hash='hogehogehogehogehogehogehoge'

そこで、Re:dashを回し始める前のデータも表示したいのですが、なにか良い手段はありませんでしょうか。

query_resulutsにレコードを偽装してinsertしてしまうことを考えているのですが、
少し現実的では無い気がしております。
insertしてグラフ描画は出来たのですが、一定の時間でそのrecordはdeleteされてしまいます。
そもそもそんなことを手作業でやることに違和感も感じております。

なにか知見が有りましたら教えていただきたいです。。。

よろしくお願いいたします。

面白い使い方ですね!

しかし、Redash は query_results を定期的に消すので、query_results テーブルを直接参照してなにかするというのは避けたほうがよさそうです。

想像ですが、集計結果が時間経過で変わってしまうからそのような対応が必要なのかなと思いますが、それは Redash でどうこうというより、データ整備の面で解決するほうがいいのかなと思いました。

query_results の定期的な削除についての設定は以下の環境変数が関連します

  • REDASH_QUERY_RESULTS_CLEANUP_ENABLED
  • REDASH_QUERY_RESULTS_CLEANUP_COUNT
  • REDASH_QUERY_RESULTS_CLEANUP_MAX_AGE

詳細はドキュメントで確認してみてください。
https://redash.io/help/open-source/admin-guide/env-vars-settings

なるほどそもそもquery_resultsはキャッシュとして使われているので、それを永続的なデータとして扱うということが無理しちゃってますね。
もう少し考えてみます。
ありがとうございます!

1 Like