DDL 比较 - Teradata Data Mover

Teradata® Data Mover 用户指南

Product
Teradata Data Mover
Release Number
17.12
Published
2022 年 1 月
Language
中文 (简体)
Last Update
2022-02-22
dita:mapPath
zh-CN/ptl1635805434108.ditamap
dita:ditavalPath
zh-CN/mpm1591127278842.ditaval
dita:id
B035-4101
Product Category
Analytical Ecosystem

在复制表或视图之前,DDL 比较功能会将源表或视图列的 DDL 与目标表或列的 DDL 进行比较。如果目标系统中不存在表,则会跳过比较。

该功能启用后,每次使用 createmove 命令创建作业或者使用 start 命令启动作业时,都会进行比较。

表的 DDL 比较

表的 DDL 比较功能可比较源表和目标表之间的列数、MAPS 属性和主时间索引 (PTI) 属性:
如果源表和目标表的以下任何值存在差异,则作业失败。
  • 每列具有以下值的列数:
    • 自动列
    • 字符类型
    • 可压缩
    • 约束
    • 约束计数
    • 小数位数
    • 总小数位数
    • 缺省值
    • 格式
    • 标识列类型
    • 长度
    • 名称
    • 可为 null
    • 存储过程参数类型
    • 模式
    • 存储格式
    • TS 列类型
    • 类型
    • UDT 名称
    • 大写标志
  • MAPS 属性
    • 当映射和共同定位属性同时位于源表和目标表上时,它们不必匹配。
    • 如果在作业中提供了映射和共同定位参数,则这些参数必须与目标表映射和共同定位参数匹配。
  • PTI 属性
    • 源表和目标表都必须是 PTI 表。
    • 源表和目标表上的 PTI 属性(timezero、tsFlags 和 timeBucketValue)必须匹配。

视图的 DDL 比较

视图的 DDL 比较将源视图的列与源表的列进行比较。它不会比较源视图和目标视图的定义。要在从视图复制数据时比较 DDL,该视图的 copyData 属性必须设置为 true

范围级别和优先级逻辑

下表显示了每个范围级别包含的对象,以及在各个范围级别指定不同的值时所应用的优先级逻辑。如果在多个范围级别设置 DDL 比较标志,则最小的范围具有最高优先级。例如,如果在数据库级别将 <compare_ddl> 元素设置为 true,而在作业级别将其设置为 false,则会对指定数据库中所有表和视图执行 DDL 比较。
范围级别 比较的对象 优先级
对象 指定的表或视图 最高
数据库 指定数据库中所有的表和视图 较高
作业 作业中所有的表和视图
守护程序 特定守护程序处理的所有表和视图
如果未指定以上范围级别的任何值,则会应用缺省逻辑:
复制的对象 缺省逻辑
各个表和视图 True。执行 DDL 比较。
整个数据库 False。不执行 DDL 比较。