DTS在将数据同步到DataHub或MaxCompute时,会在同步的目标表添加一些附加列,用于元数据管理、排序去重等。如果附加列和目标表中已有的列出现名称冲突将会导致数据同步失败,为避免出现此类问题,您可以修改同步附加列的命名规则。

背景信息

在修改数据同步的附加列规则前,您需要评估附加列和目标表中已有的列是否会出现名称冲突。关于附加列名称及其定义请参见下表。

重要 使用旧版附加列规则时,DTS也会给目标中的源库原有业字段加前缀(dts_);使用新版附加列规则时,DTS不会给目标中的源库原有业字段加前缀。
表 1. 附加列名称和定义说明
目标实例旧版附加列名称新版附加列名称附加列定义
DataHub
  • dts_record_id
  • dts_instance_id
  • dts_db_name
  • dts_table_name
  • dts_operation_flag
  • dts_utc_timestamp
  • dts_before_flag
  • dts_after_flag
  • new_dts_sync_dts_record_id
  • new_dts_sync_dts_instance_id
  • new_dts_sync_dts_db_name
  • new_dts_sync_dts_table_name
  • new_dts_sync_dts_operation_flag
  • new_dts_sync_dts_utc_timestamp
  • new_dts_sync_dts_before_flag
  • new_dts_sync_dts_after_flag
参见Topic结构定义说明
MaxCompute
  • record_id
  • operation_flag
  • utc_timestamp
  • before_flag
  • after_flag
  • modifytime_year
  • modifytime_month
  • modifytime_day
  • modifytime_hour
  • modifytime_minute
  • new_dts_sync_record_id
  • new_dts_sync_operation_flag
  • new_dts_sync_utc_timestamp
  • new_dts_sync_before_flag
  • new_dts_sync_after_flag
  • new_dts_sync_modifytime_year
  • new_dts_sync_modifytime_month
  • new_dts_sync_modifytime_day
  • new_dts_sync_modifytime_hour
  • new_dts_sync_modifytime_minute
参见增量日志表结构定义说明

操作步骤

  1. 开始配置数据同步作业,详情请参见配置同步任务(旧控制台)中的第1步到第7步。
  2. 选择同步对象环节的页面底部,根据业务需求选择是否启用新的附加列规则
    修改附加列规则
    选项说明
    选择为,则启用新的附加列规则。
    说明 如果旧版附加列的名称和目标表中已有的列出现名称冲突,请选择为来避免。

    DTS在旧版附加列添加名为new_dts_sync_的前缀组成新的附加列。

    例如旧版附加列的名称为record_id,那么新的附加列的名称即为new_dts_sync_record_id

    使用旧版附加列的名称。
    说明 如果同步的目标实例是DataHub,DTS还会为目标表的业务字段添加名为dts_的前缀。例如源表的业务字段为address,目标表中对应的字段即变更为dts_address
    说明 关于数据同步涉及的附加列名称和定义,请参见附加列名称和定义说明
  3. 根据提示,完成后续的数据同步作业配置。

相关文档