物化视图的调度程序Postgresql + Redshift

时间:2018-09-28 13:58:10

标签: postgresql amazon-redshift materialized-views

我想要的是每晚更新一个表并缓存它,这样就不必每次我们基于该表运行查询时都运行该表。因此,我认为我需要一个物化视图(而不是视图)。

以下问题的最佳答案就是我需要的东西。

How can I ensure that a materialized view is always up to date?

因此,我到处搜索了Postgresql的物化视图,它看起来很完美。我需要的只是一个调度程序。

Pg_cron似乎很受欢迎,但据我了解,它与Amazon Redshift不兼容(请参阅https://github.com/citusdata/pg_cron/)(?)

是否存在其他可用的计划工具或解决该问题的方法?

非常感谢! 汉尼斯

3 个答案:

答案 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