我想要的是每晚更新一个表并缓存它,这样就不必每次我们基于该表运行查询时都运行该表。因此,我认为我需要一个物化视图(而不是视图)。
以下问题的最佳答案就是我需要的东西。
How can I ensure that a materialized view is always up to date?
因此,我到处搜索了Postgresql的物化视图,它看起来很完美。我需要的只是一个调度程序。
Pg_cron似乎很受欢迎,但据我了解,它与Amazon Redshift不兼容(请参阅https://github.com/citusdata/pg_cron/)(?)
是否存在其他可用的计划工具或解决该问题的方法?
非常感谢! 汉尼斯
答案 0 :(得分:0)
Redshift还没有对物化视图的内置支持。您将需要外部服务来帮您。我们正在使用气流,在那里我们编写了填充物化视图的模板DAG。
答案 1 :(得分:0)
Redshift现在支持实体化视图
https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-overview.html
但是,目前尚无办法在RedShift中安排刷新时间,因此您将不得不从某些外部计时器和逻辑中调用REFRESH命令。</ p>
https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-refresh-sql-command.html
答案 2 :(得分:0)
如果您想保持无服务器状态,您可以使用 Redshift 数据 API 并从 Lambda 调用 MV REFRESH。 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/redshift-data.html