Amazon Redshift Spectrum 中外部数据湖表的实体化视图
实体化视图可对外部数据湖表进行增量维护。使用增量维护时,Amazon Redshift 会更新实体化视图中的数据,仅处理自上次刷新以来基表中发生变化的数据。与在基表上每次数据更改后完全重新计算实体化视图相比,增量维护更具成本效益。
当您对至少一个外部表使用实体化视图时,实体化视图的创建对以下表是增量进行:
-
标准数据湖表,分区和未分区,数据文件采用任何支持的格式(Parquet、Avro、CSV 等)。
-
Apache Iceberg 表,分区和未分区,采用写入时复制和读取时合并模式。
-
与同一个数据库中的任何 Amazon Redshift 表进行联接的 Amazon Redshift Spectrum 表。
实体化视图刷新对以下表是增量进行:
-
在 S3 DELETE 或 PUT 覆盖(删除数据文件)之后的标准数据湖表(如果实体化视图不执行聚合)。
-
INSERT、DELETE、UPDATE 或表压缩之后的 Apache Iceberg 表。
有关 Amazon Redshift Spectrum 的更多信息,请参阅Amazon Redshift Spectrum。
限制
对实体化视图的一般限制仍然适用于数据湖表上的实体化视图。有关更多信息,请参阅 刷新实体化视图。此外,在外部数据湖表上使用实体化视图时,请考虑以下限制。
-
对以下表的实体化视图创建是非增量的:
-
Hudi 或 Delta Lake 表。
-
Spectrum 嵌套数据访问。
-
-
对以下表的实体化视图刷新会回退到完全重新计算:
-
当所需快照过期时的 Apache Iceberg 表(如果实体化视图执行聚合)。
-
在 Amazon S3 上的数据文件删除或更新之后的标准数据湖表(如果实体化视图执行聚合)。
-
在一个事务块中多次刷新的标准数据湖表。
-
通过清单管理的标准数据湖表。有关清单的更多信息,请参阅使用清单指定数据文件。
-
如果完全重新计算预计会更高效,则 Amazon Redshift 会回退到完全重新计算,尤其是对于包含联接且自上次刷新以来更新了多个基表的实体化视图。
-
-
在 Apache Iceberg 表上,实体化视图刷新操作最多只能处理一个数据文件中删除的 400 万个记录位置。达到此限制后,必须压缩 Apache Iceberg 基表才能继续刷新实体化视图。
-
在 Apache Iceberg 表上,实体化视图创建和刷新不支持并发扩展。
-
刷新增量实体化视图时,IAM 权限仅适用于 Amazon Redshift 基表的访问部分。