【问题标题】:Scheduler for materialized views Postgresql + Redshift物化视图的调度程序 Postgresql + Redshift
【发布时间】:2019-03-04 13:10:16
【问题描述】:

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

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

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

所以,我搜索了有关 Postgresql 的物化视图,它看起来很完美。我只需要一个调度器。

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

是否有其他可用的调度工具或解决该问题的方法?

非常感谢! 汉内斯

【问题讨论】:

  • Redshift 还是 Postgres?他们是不同的

标签: postgresql amazon-redshift materialized-views


【解决方案1】:

Redshift 还没有对物化视图的内置支持。您将需要外部服务为您做这件事。我们正在使用气流,我们在其中编写了填充物化视图的模板 DAG。

【讨论】:

  • 标准 cron 运行 psql 或最好是气流。或其他一些日程安排工具。
【解决方案2】:

Redshift 现在支持物化视图

https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-overview.html

但是,目前无法在 RedShift 中安排刷新,因此您必须从某个外部计时器调用 REFRESH 命令。 https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-refresh-sql-command.html

自 2020/11 起,还可以允许 Redshift 使用 AUTO REFRESH YES 选项控制刷新物化视图。 https://docs.amazonaws.cn/en_us/redshift/latest/dg/materialized-view-create-sql-command.html

【讨论】:

    【解决方案3】:

    如果您想保持无服务器,您可以使用 Redshift 数据 API 并从 Lambda 调用 MV REFRESH。 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/redshift-data.html

    【讨论】:

      猜你喜欢
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多