在调用部分接口配置或查询迁移或同步、订阅任务时,您需要配置或查询预留参数Reserve来完善或查看源或目标实例的配置信息(比如目标Kafka数据库的数据存储格式、云企业网CEN的实例ID)。本文将介绍Reserve参数的适用场景和配置说明。

相关接口

Reserve的配置说明

Reserve的数据类型为字符串String,传入格式为JSON,其适用场景和配置说明如下所示。

说明 如所传入数据为数值,则您需加英文双引号(""),将其转变为字符串String。
  • 通过如下Reserve参数,配置DTS迁移或同步任务中目标已存在表的处理模式和全量写入速率。
    参数 是否必填 说明
    targetTableMode 目标已存在表的处理模式:
    • 0:预检查并报错拦截。
    • 2:忽略报错并继续执行。
    dts.datamove.source.bps.max 每秒全量同步或迁移的数据量,取值为[0,9007199254740991]的整数,单位为MB。
  • 当目标实例的数据库类型为Kafka时,您需在Reserve参数中配置Kafka数据库的信息,以及投递到Kafka数据库中的数据存储格式。
    参数 是否必填 说明
    destTopic 目标Kafka数据库中迁移或同步对象所属Topic。
    destVersion 目标Kafka数据库的版本。支持传入1.00.90.10
    说明 如Kafka数据库版本为1.0及以上,则需传入 1.0
    destSSL 连接目标Kafka数据库的方式,取值为:
    • 0:非加密连接。
    • 3:使用SCRAM-SHA-256进行加密连接。
    dest.kafka.schema.registry.url 如使用 Kafka Schema Registry ,您需要输入在Kafka Schema Registry中用于注册Avro Schema的URL或IP。
    sink.kafka.ddl.topic 输入具体的Topic,用于存储DDL信息。如果未输入,DDL信息默认存储在destTopic输入的Topic中。
    kafkaRecordFormat 数据投递到目标Kafka数据库中的存储格式,取值为:
    • canal_json:使用Canal来解析数据库增量日志,并将增量数据传输至目标Kafka数据库中,数据存储格式为Canal Json。
    • dts_avro:一种数据序列化格式,可将数据结构或对象转化成便于存储或传输的格式。
    • shareplex_json:使用数据复制软件Shareplex读取源库中的数据,将数据写入至目标Kafka数据库时,数据存储格式为Shareplex Json。
    • debezium:一种捕获数据变更的工具,支持将源PolarDB O引擎集群中的数据更新实时流式传输到目标Kafka数据库中。
    说明 更多格式说明,请参见 Kafka集群的数据存储格式
    destKafkaPartitionKey Kafka Partition(分区)同步策略,取值为:
    • none:将所有数据和DDL信息都投递到目标Topic的Partition 0。
    • database_table:将库名与表名合并作为Partition Key来计算Hash值,然后将各个表的数据和DDL信息投递到目标Topic中的各个Partition。
    • columns:将表中的列(默认为主键,如果无主键则使用唯一键)作为Partition Key来计算Hash值,然后将不同的行投递到目标Topic的各个Partition中。您也可以指定单个或多个列作为Partition Key来计算Hash值。
    说明 更多分区同步策略说明,请参见 Kafka Partition同步策略说明
    示例:
    {
        "destTopic": "dtstestdata",
        "destVersion": "1.0",
        "destSSL": "0",
        "dest.kafka.schema.registry.url": "http://12.1.12.**/api",
        "sink.kafka.ddl.topic": "dtstestdata",
        "kafkaRecordFormat": "canal_json",
        "destKafkaPartitionKey": "none"
    }
  • 当源和目标实例的数据库类型为MongoDB时,您需在Reserve参数中指定MongoDB数据库的架构。
    参数 是否必填 说明 示例
    srcEngineArchType 源数据库MongoDB的架构类型。
    • 0 :单节点架构。
    • 1:副本集架构。
    • 2:分片集群架构。
    {
         "srcEngineArchType": "1"  }
    destEngineArchType 目标数据库MongoDB的架构类型。
    • 0 :单节点架构。
    • 1:副本集架构。
    • 2:分片集群架构。
    {
         "destEngineArchType": "1"  }
  • 当源或目标实例为通过云企业网CEN接入的自建数据库时,您需在Reserve参数中配置云企业网实例ID。
    参数 是否必填 说明 示例
    srcInstanceId 源实例的云企业网实例ID。
    {
         "srcInstanceId": "cen-9kqshqum*******"  }
    destInstanceId 目标实例的云企业网实例ID。
    {
         "destInstanceId": "cen-9kqshqum*******"  }
  • 当目标实例的数据库类型为DataHub或MaxCompute时,您需在Reserve参数中配置目标库使用的附加列规则。
    参数 是否必填 说明
    isUseNewAttachedColumn 附加列命名规则如下:
    • 使用新附加列命名规则:isUseNewAttachedColumn取值为true
    • 使用旧附加列命名规则:isUseNewAttachedColumn取值为false,且disableAttachedDTSColumn不能为true
    • 不使用默认附加列命名规则:disableAttachedDTSColumn取值为true,且isUseNewAttachedColumnfalse
    disableAttachedDTSColumn
  • 当源实例的数据库类型为Oracle时,您需在Reserve参数中配置Oracle实例的类型。
    参数 是否必填 说明
    srcOracleType Oracle实例的类型,取值为:
    • sid:非RAC实例。
    • serviceName:RAC或PDB实例。
  • 当目标实例的数据库类型为PolarDB MySQL时,您需在Reserve参数中配置PolarDB MySQL实例的引擎类型。
    参数 是否必填 说明
    anySinkTableEngineType PolarDB MySQL实例的引擎类型,取值为:
    • innodb:默认存储引擎。
    • xengine:联机事务处理OLTP(On-Line Transaction Processing)数据库存储引擎。
  • 当源和目标实例的数据库类型均为MySQL(包括RDS MySQL和自建MySQL)、PolarDB MySQL、AnalyticDB MySQL 3.0或RDS MariaDB 3.0时,您需在Reserve参数中配置源表DMS_ONLINE_DDL过程中是否复制临时表到目标库
    参数 是否必填 说明
    sqlparser.dms.original.ddl 是否迁移源库使用数据管理DMS(Data Management Service)执行Online DDL变更产生的临时表数据,取值为:
    • true:迁移Online DDL变更产生的临时表数据。
      说明 Online DDL变更产生的临时表数据过大,可能会导致迁移任务延迟。
    • false:不迁移Online DDL变更产生的临时表数据,只迁移源库的原始DDL数据。
      说明 该方案会导致目标库锁表。