按排序键顺序加载数据
如果您使用 COPY 命令按排序键顺序加载数据,可能会减少甚至消除对 vacuum 的需求。
当满足以下所有条件时,COPY 会向表的有序区域自动添加新行:
-
表使用了只有一个排序列的复合排序键。
-
排序列 NOT NULL。
-
表 100% 有序或为空。
-
所有新行的排序顺序均优先于现有行,包括标记为要删除的行。在此实例中,Amazon Redshift 使用排序键的前八个字节来确定排序顺序。
例如,假设您有一个使用客户 ID 和时间记录客户事件的表。如果按客户 ID 进行排序,则增量加载添加的新行的排序键范围可能会与现有范围重叠(如上一个示例中所示),从而导致昂贵的 vacuum 操作。
如果您将排序键设置为时间戳列,新行将按排序顺序追加到表的结尾(如下图所示),从而减少甚至消除对 vacuum 的需求。