1
dplyr
のデータベースバックエンドをAWS Redshiftデータベースで使用しています。そして、いくつかのクエリは、むしろ永遠に戻ってくるので、私はそれらをキャッシュしたいと思います。私は基礎となるデータが変更されないので、クエリが変更されない場合、結果セットも変更されません。キャッシュ結果dplyrデータベースバックエンド
私はこれを達成するために他の場所で撮影したアプローチがあれば、スクリプトの次の実行に
{hash}.rds
ファイルにクエリの結果を保存
- ハッシュクエリ文字列
- ですハッシュは変更されていないので、ディスクから結果を読み込みます。そうでなければクエリを再実行します。
私はdplyr
で同じアプローチを試みています。 dplyr残念ながら、SQLクエリ文字列操作は同じまま場合でも、変更を生成:
df %>%
select(week, person_id) %>%
group_by(person_id) %>%
mutate(weeks_active = n()) %>%
arrange(weeks_active) %>%
dplyr::sql_render()
は、第二の最初の実行と
<SQL> SELECT *
FROM (SELECT "week", "person_id", COUNT(*) OVER (PARTITION BY "person_id") AS "weeks_active"
FROM (SELECT "week" AS "week", "person_id" AS "person_id"
FROM "fct_person_week") "stxupavckd") "oaknuxjexc"
ORDER BY "weeks_active"
上
<SQL> SELECT *
FROM (SELECT "week", "person_id", COUNT(*) OVER (PARTITION BY "person_id") AS "weeks_active"
FROM (SELECT "week" AS "week", "person_id" AS "person_id"
FROM "fct_person_week") "zznunjjdwe") "ltyyfmiahu"
ORDER BY "weeks_active"
を生成します。テーブルエイリアスを固定しておく方法はありますか?複数回実行しても同じクエリの要約がありますか?または、私はこれをキャッシュする他の方法を調べるべきですか?
ハッシュキー用に何らかの種類の種を設定できますか? – sconfluentus