Amazon Redshift 宣布支持对嵌套实体化视图进行级联刷新
Amazon Redshift 现在支持对嵌套实体化视图(MV)进行级联刷新,这些视图是在本地 Amazon Redshift 表和外部流源(例如 Amazon Kinesis Data Streams(KDS)、Amazon Managed Streaming for Apache Kafka(MSK)或 Confluent Cloud)上定义的。
通过此次更新,客户现在可以使用一个选项来指定“级联”或“限制”,从而对嵌套 MV 进行级联刷新。“限制”选项会将 MV 刷新限制在单个目标 MV 上,而使用“级联”选项在目标 MV 上进行的刷新将触达在单个事务中对目标 MV 下的所有嵌套 MV 进行级联刷新。示例如下:
CREATE TABLE t(a INT);
CREATE MATERIALIZED VIEW u AS SELECT * FROM t;
CREATE MATERIALIZED VIEW v AS SELECT * FROM u;
CREATE MATERIALIZED VIEW w AS SELECT * FROM v;
-- w -> v -> u -> t
INSERT INTO t VALUES (1);
以下示例显示了在依赖于过时实体化视图的实体化视图上运行 REFRESH MATERIALIZED VIEW 时的一条信息性消息。
REFRESH MATERIALIZED VIEW v;
信息:实体化视图 v 已经是最新的。但是,它依赖于另一个不是最新的实体化视图。
REFRESH MATERIALIZED VIEW v CASCADE;
信息:实体化视图 v 已成功增量更新。
在上述使用“级联”刷新选项的示例中,首先刷新 MV 'u',然后依次刷新 MV 'v',而 MV 'w' 不刷新。
级联刷新消除了以前协调手动刷新多个嵌套实体化视图所需的复杂逻辑,从而大大简化了应用程序开发。您可以立即开始使用这项新功能来构建更复杂、更灵活的分析管道。要开始使用,请参阅文档中刷新实体化视图部分的嵌套实体化视图子部分。