DTS支持调用API接口,配置或查询DTS任务的迁移、同步或订阅对象。本文将为您介绍相关API接口,并提供对象的定义和配置案例。

相关接口及参数

API 说明
在请求参数Dblist中配置DTS任务的迁移、同步或订阅的对象。
在返回参数DbObject中查询DTS任务的迁移、同步或订阅的对象。

迁移、同步或订阅对象定义说明

迁移、同步或订阅对象的数据类型为JSON,详细定义如下:

说明 请按需配置斜体部分的内容。
{
    "待迁移、同步或订阅的库1的名称": {
        "name": "待迁移、同步或订阅的库1在目标实例中的名称", 
        "all": true
    }, 
    "待迁移、同步或订阅的库2的名称": {
        "name": "待迁移、同步或订阅的库2在目标实例中的名称", 
        "all": false, 
        "Table": {
            "待迁移、同步或订阅的表A的名称": {
                "name": "待迁移、同步或订阅的表A在目标实例中的名称", 
                "all": true, 
                "dml_op": "i,u", 
                "ddl_op": "ct,at,dt,rt,tt,cv,av,dv,cf,df,cp,ap,dp,ctr,dtr,ci,di"
            }
        }
    }, 
    "待迁移、同步或订阅的库3的名称": {
        "name": "待迁移、同步或订阅的库3在目标实例中的名称", 
        "all": true, 
        "dml_op": "i,u", 
        "ddl_op": "ct,at,rt,tt,cv,av,dv,cf,df,cp,ap,dp,ctr,dtr,ci,di"
    }
}
 {"待迁移、同步或订阅的库名": {
   "name": "待迁移、同步或订阅的库在目标实例中的库名",
   "all": false,
   "Table": {
     "待迁移、同步或订阅的表名A": {
       "name": "待迁移、同步或订阅的表在目标实例中的表名A",
       "all": false,
       "filter": "id>10"
       "column": {
         "id": {
           "key": "PRI",
           "name": "id",
           "type": "int(11)",
           "sharedKey": false,
           "state": "checked"  
         }
       },
       "shard": 12
     }
   },
   "num": 2
 }
}
参数 说明
name 待迁移、同步或订阅的库、表、列在目标实例中的名称。
all 是否选择全部表、列,取值:
  • true:是。
    说明 如选择全部表或列,则无需在配置具体的表或列信息。
  • false:否。
Table 待迁移、同步或订阅的表信息。
filter 过滤条件,过滤待迁移、同步或订阅的数据。目前仅支持在表级别中体现。

例如您可传入id>10,选择只迁移、同步或订阅该表中id列的值大于10的数据。更多过滤条件的格式,请参见通过SQL条件过滤待同步数据

column 待迁移、同步或订阅的列信息。
key 是否为主键,取值:
  • PRI:是。
  • 空值:否。
sharedKey 是否为分片键,取值:
  • true:是。
  • false:否。
说明 当迁移、同步或订阅数据所属数据库的类型为Kafka时,才需配置本参数。
type 该字段的数据类型。
state 如为checked,则表示该列被选中。
shard 待迁移、同步或订阅的表的分片数量。
说明 当迁移、同步或订阅数据所属数据库的类型为Kafka时,才需配置本参数。
num 待迁移、同步或订阅的库中需要迁移的表的数量。
dml_op 选择增量迁移或同步的DML操作,取值及意思如下:
  • i:INSERT。
  • u:UPDATE。
  • d:DELETE。
  • 如该值为空,则表示增量迁移或同步该任务所有支持的DML操作。
  • none:不增量迁移或同步DML操作。
说明 如需查询不同迁移或同步任务支持的DML操作,请参见 DTS数据迁移方案概览DTS数据同步方案概览中具体任务的配置文档。
ddl_op 选择增量迁移或同步的DDL操作。取值及意思如下:
  • ct:CREATE TABLE。
  • at:ALTER TABLE。
  • dt:DROP TABLE。
  • rt:RENAME TABLE。
  • tt:TRUNCATE TABLE。
  • 如该值为空,则表示增量迁移或同步该任务所有支持的DDL操作。
  • none:不增量迁移或同步DDL操作。
说明 如需查询不同迁移或同步任务支持的DDL操作,请参见 DTS数据迁移方案概览DTS数据同步方案概览中具体任务的配置文档。

迁移、同步或订阅对象配置示例

  • 示例一:迁移、同步或订阅dtstestdata库中所有的表。
    {"dtstestdata": {   "name": "dtstestdata",   "all": true }}
  • 示例二:迁移、同步或订阅dtstestdata库,并修改库名为dtstestdata_new。
    {"dtstestdata": {   "name": "dtstestdata_new",   "all": true }}
  • 示例二:迁移、同步或订阅dtstestdata库中部分表(如customer)。
    {"dtstestdata": {
       "name": "dtstestdata",
       "all": false,
       "Table": {
         "customer": {
           "name": "customer",
           "all": true, 
           "column": { 
             "id": {
               "key": "PRI",
               "name": "id",
               "type": "int(11)",
               "sharedKey": false,
               "state": "checked"  
             },
             "gmt_create": {
               "key": "",
               "name": "gmt_create",
               "type": "datetime",
               "sharedKey": false,
               "state": "checked"
             },
             "gmt_modify": {
               "key": "",
               "name": "gmt_modify",
               "type": "datetime",
               "sharedKey": false,
               "state": "checked"
             },
             "valid_time": {
               "key": "",
               "name": "valid_time",
               "type": "datetime",
               "sharedKey": false,
               "state": "checked"
             },
             "creator": {
               "key": "",
               "name": "creator",
               "type": "varchar(200)",
               "sharedKey": false,
               "state": "checked"
             }
           },
           "shard": 12
         }
       },
       "num": 1
     }
    }
  • 示例四:迁移、同步或订阅dtstestdata库中的表(如customer和order)的部分列。
    {"dtstestdata": {
       "name": "dtstestdata",
       "all": false,
       "Table": {
         "customer": {
           "name": "customer",
           "all": false, 
           "column": { 
             "id": {
               "key": "PRI",
               "name": "id",
               "type": "int(11)",
               "sharedKey": false,
               "state": "checked"  
             },
             "level": {
               "key": "",
               "name": "level",
               "type": "varchar(5000)",
               "sharedKey": false,
               "state": "checked"
             },
             "name": {
               "key": "",
               "name": "name",
               "type": "varchar(500)",
               "sharedKey": false,
               "state": "checked"
             },
           },
           "shard": 12
         },
         "order": {
           "name": "order",
           "all": false,
          "column": {
             "id": {
               "key": "PRI",
               "name": "id",
               "type": "int(11)",
               "sharedKey": false,
               "state": "checked"
             }
           },
           "shard": 12
         }
       },
       "num": 2
     }
    }