创建临时的暂存表 - Amazon Redshift

创建临时的暂存表

暂存表 是一个临时表,用来保存将用于对目标表 进行更改(包括更新和插入)的所有数据。

合并操作需要在暂存表和目标表之间建立联接。要并置联接行,请将暂存表的分配键的列设置为与目标表的分配键的列相同。例如,如果目标表使用一个外键列作为其分配键,则对暂存表的分配键使用相同的列。如果使用 CREATE TABLE LIKE 语句创建一个暂存表,则该暂存表将从父表继承分配键。如果使用 CREATE TABLE AS 语句,则新表不会继承分配键。有关更多信息,请参阅使用数据分配样式

如果分配键与主键不相同且在合并操作中未更新分配键,则在分配键列上添加一个冗余联接谓词以启用并置联接。例如:

where target.primarykey = stage.primarykey and target.distkey = stage.distkey

要验证查询是否将使用并置联接,请使用 EXPLAIN 运行查询并检查所有联接上是否有 DS_DIST_NONE。有关更多信息,请参阅评估查询计划