文档

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

更新时间:

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": "需增量迁移或同步的DML操作",
                    "ddl_op": "需增量迁移或同步的DDL操作"
                }
            }
        },
        "待迁移、同步或订阅的库3的名称": {
            "name": "迁移、同步或订阅的库3在目标实例中的名称",
            "all": true(表示迁移、同步或订阅对象为整库),
            "dml_op": "需增量迁移或同步的DML操作",
            "ddl_op": "需增量迁移或同步的DDL操作"
        }
    }
  • 如迁移、同步或订阅对象的颗粒度为列,或者包含过滤条件,则您可参考如下定义:

    {
        "待迁移、同步或订阅的库名": {
            "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
                }
            }
        }
    }
  • 如迁移、同步对象所属目标实例为云原生数据仓库AnalyticDB MySQL版AnalyticDB PostgreSQL时,则您可参考如下定义:

    {
        "待迁移、同步的库的名称": {
            "name": "迁移、同步的库在目标实例中的名称",
            "all": false(固定为false。无论是对象为整库还是表级,如目标实例为AnalyticDB MySQL或AnalyticDB PostgreSQL,固定传入false,且还需传入表对应的分区键等信息),
            "Table": {
                "待迁移、同步的表A的名称": {
                    "all": true(表示迁移、同步对象为整表),
                    "name": "迁移、同步的表A在目标实例中的名称",
                    "primary_key": "id(指定主键)",
                    "type": "dimension(表的类型)",
                }
                "待迁移、同步的表B的名称": {
                    "all": true(表示迁移、同步对象为整表),
                    "name": "迁移、同步的表B在目标实例中的名称",
                    "part_key": "id(指定分区键)",
                    "primary_key": "id(指定主键)",
                    "type": "partition(表的类型)",
                    "tagColumnValue": "标签列的值"
                }
            }
        }
    }

参数

说明

name

源库、表、列名映射到目标库、表、列的名称。如源库名为dtssource,目标库名为dtstarget,则您需在name中传入dtstarget,表示把源库名映射成dtstarget后写入目标库中。

all

是否选择全部表、列,取值:

  • true:是。

    说明

    如选择全部表或列,则无需在配置具体的表或列信息。

  • false:否。

Table

待迁移、同步或订阅的表信息。

filter

设置过滤条件,过滤待迁移、同步或订阅的数据。目前仅支持在表级别中体现。

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

说明

订阅任务暂不支持设置过滤条件。

column

待迁移、同步或订阅的列信息。

key

是否为主键,取值:

  • PRI:是。

  • 空值:否。

sharedKey

是否为分片键,取值:

  • true:是。

  • false:否。

说明

当迁移、同步对象所属数据库的类型为Kafka时,才需配置本参数。

type

该字段的数据类型。

state

如为checked,则表示该列被选中。

shard

待迁移、同步的表的分片数量。

说明

当迁移、同步数据所属数据库的类型为Kafka时,才需配置本参数。

dml_op

选择增量迁移或同步的DML操作,取值及意思如下:

  • i:INSERT。

  • u:UPDATE。

  • d:DELETE。

  • 如该值为空,则表示增量迁移或同步该任务所有支持的DML操作。

  • none:不增量迁移或同步DML操作。

说明

如需查询不同迁移或同步任务支持的DML操作,请参见迁移方案概览同步方案概览中具体任务的配置文档。

ddl_op

选择增量迁移或同步的DDL操作。取值及意思如下:

  • ct:CREATE TABLE。

  • at:ALTER TABLE。

  • dt:DROP TABLE。

  • rt:RENAME TABLE。

  • tt:TRUNCATE TABLE。

  • 如该值为空,则表示增量迁移或同步该任务所有支持的DDL操作。

  • none:不增量迁移或同步DDL操作。

说明

如需查询不同迁移或同步任务支持的DDL操作,请参见迁移方案概览同步方案概览中具体任务的配置文档。

primary_key

表示主键。当目标实例为云原生数据仓库AnalyticDB MySQL版AnalyticDB PostgreSQL时,本参数才可用且必须传入。

part_key

表示分区键。当目标实例为云原生数据仓库AnalyticDB MySQL版AnalyticDB PostgreSQL时,本参数才可用且必须传入。

type

重要

此处的type参数与代表字段数据类型的type参数。

当目标实例为云原生数据仓库AnalyticDB MySQL版AnalyticDB PostgreSQL时,您需要指明迁移、同步对象的表类型:

  • dimension:维度表。

  • partition:分区表。

tagColumnValue

自定义__dts_data_source标签列的值。当目标实例为云原生数据仓库AnalyticDB MySQL版时,本参数才可用且必须传入。

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

  • 示例一:迁移、同步或订阅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
         }
       }
     }
    }
  • 示例四:迁移、同步或订阅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
         }
       }
     }
    }
  • 示例五:迁移、同步或订阅dtstestdata库中的表(如customer、order、commodity)至目标实例云原生数据仓库AnalyticDB MySQL版AnalyticDB PostgreSQL中。

    {
        "dtstestdata": {
            "name": "dtstestdatanew",
            "all": false,
            "Table": {
                "order": {
                    "name": "ordernew",
                    "all": true,
                    "part_key": "id",
                    "primary_key": "id",
                    "type": "partition"
                },
                "customer": {
                    "name": "customernew",
                    "all": true,
                    "primary_key": "id",
                    "type": "dimension"
                },
                "commodity": {
                    "name": "commoditynew",
                    "all": false,
                    "filter": "id>10",
                    "column": {
                        "id": {
                            "key": "PRI",
                            "name": "id",
                            "type": "int(11)"
                        }
                    },
                    "part_key": "id",
                    "primary_key": "id",
                    "type": "partition"
                }
            }
        }
    }
  • 本页导读 (1)