在某些情况下,使用 Teradata ARC 时,作业可将表复制到暂存表。然后,作业会从暂存表向目标表执行 INSERT/SELECT 语句。如果目标表在目标数据库中不存在,则 Data Mover 会使用 SHOW TABLE 命令的输出内容创建目标表。
作业使用 Teradata ARC 和暂存表时,存在以下限制:
- 如果表在目标数据库中不存在,并且具有关联日志,则该关联日志必须存在于目标数据库中。即使为表指定了 <journaling>false</journaling>,也是如此。
- 如果表在目标数据库中存在,并且具有关联日志,Data Mover 将保留目标表的日志属性。即使为表指定了 <journaling>false</journaling>,也是如此。
如果您尝试将日志数据应用或复制到一个要复制到暂存表的表中,则会发生创建时间错误。要避免此错误,请将要复制的表的 <journaling> 属性设置为 false.。
在以下情况下,Data Mover 必须使用暂存表:
- 作业在 Teradata Database 之间复制表,并且该表在源数据库中具有联接或哈希索引。
- 作业复制了一个表及其关联触发器,而该触发器指定了 BEFORE 作为 action_time 参数。
- 作业复制了一个使用外键的源表,而该表在目标数据库中不存在。
- 作业使用 Teradata ARC 对表进行了部分复制。