要使用 Teradata ARC 实用程序执行部分表复制,则在不使用源暂存表的情况下,该表必须具有分区主索引 (PPI)。如果尝试从未分区的表中复制部分数据,并且不使用源暂存表,则会出现错误。ARC 不允许存档、还原和复制列分区表或联接索引,包括具有主 AMP 索引、主索引或没有主索引的表。当强制使用 ARC 对列分区表或联接索引进行部分移动时,如果不使用源暂存表,Data Mover 会生成 Cannot use ARC to copy partial data from a column partition table(不能使用 ARC 从列分区表中复制部分数据)错误。
使用 sql_where_clause 和 key_column 标记可通过 Teradata ARC 复制部分数据,但请在 WHERE 子句中指定分区列。这是 Teradata ARC 的一项限制,如果未在 WHERE 子句中指定分区列,则会出现错误。
在使用 Teradata ARC 复制部分表时,请勿使用在线存档设置。这是 Teradata ARC 的一项限制,如果使用在线存档设置,则会出现错误。
在使用 Teradata ARC 复制部分表时,Data Mover 会创建一个暂存表。如果通过 Teradata ARC 使用 WHERE 子句对数据进行存档,则会对符合条件的行所属的整个分区进行存档。因此,整个分区会先复制到暂存表中。复制分区后,只有所需的数据(即,WHERE 子句符合条件的行)才会从暂存表复制到目标表。
例如,如果某个表按月份进行分区,而您需要复制 DATE = '2019/3/8' 的所有行,则 Teradata ARC 会对整个三月份分区进行存档,因为 '2019/3/8' 属于三月份分区。此时会将整个三月份分区复制到暂存表中。然后,符合条件的行(即,Date = '2019/3/8' 的行)会从暂存表复制到目标表。