在不使用源暂存表的情况下使用 Teradata ARC 执行部分表复制时的注意事项 - Teradata Data Mover

Teradata® Data Mover 用户指南

Product
Teradata Data Mover
Release Number
16.20
Published
2021 年 11 月
Language
中文 (简体)
Last Update
2021-12-02
dita:mapPath
zh-CN/wph1512683331242.ditamap
dita:ditavalPath
zh-CN/mpm1591127278842.ditaval
dita:id
B035-4101
Product Category
Analytical Ecosystem

要使用 Teradata ARC 实用程序执行部分表复制,则在不使用源暂存表的情况下,该表必须具有分区主索引 (PPI)。如果尝试从未分区的表中复制部分数据,并且不使用源暂存表,则会出现错误。ARC 不允许存档、还原和复制列分区表或联接索引,包括具有主 AMP 索引、主索引或没有主索引的表。当强制使用 ARC 对列分区表或联接索引进行部分移动时,如果不使用源暂存表,Data Mover 会生成 Cannot use ARC to copy partial data from a column partition table(不能使用 ARC 从列分区表中复制部分数据)错误。

使用 sql_where_clausekey_column 标记可通过 Teradata ARC 复制部分数据,但请在 WHERE 子句中指定分区列。这是 Teradata ARC 的一项限制,如果未在 WHERE 子句中指定分区列,则会出现错误。

在使用 Teradata ARC 复制部分表时,请勿使用在线存档设置。这是 Teradata ARC 的一项限制,如果使用在线存档设置,则会出现错误。

Teradata ARC 复制分区时不支持嵌套的 SELECT 语句。如果在 WHERE 子句中指定嵌套 SELECT 语句,则会出现 Teradata ARC 错误。

在使用 Teradata ARC 复制部分表时,Data Mover 会创建一个暂存表。如果通过 Teradata ARC 使用 WHERE 子句对数据进行存档,则会对符合条件的行所属的整个分区进行存档。因此,整个分区会先复制到暂存表中。复制分区后,只有所需的数据(即,WHERE 子句符合条件的行)才会从暂存表复制到目标表。

例如,如果某个表按月份进行分区,而您需要复制 DATE = '2019/3/8' 的所有行,则 Teradata ARC 会对整个三月份分区进行存档,因为 '2019/3/8' 属于三月份分区。此时会将整个三月份分区复制到暂存表中。然后,符合条件的行(即,Date = '2019/3/8' 的行)会从暂存表复制到目标表。