在调用ConfigureSynchronizationJob接口或ModifySynchronizationObject接口时,您需要传入同步对象参数。本文为您介绍同步对象的定义和配置案例。
相关接口
同步对象定义说明
同步对象(SynchronizationObjects)的取值类型为Object,支持一定的正则表达式,详细定义如下所示。
[{
"DBName":"待同步的库名",
"NewDBName":"待同步的库在目标实例中映射的别名",
"SchemaName":"待同步Schema名",
"NewSchemaName":"待同步Schema在目标实例中映射的Schema名",
"AllTable": false,
"TableIncludes":[{
"TableName":"待同步的表名",
"NewTableName":"待同步的表在目标实例中映射的别名",
"FilterCondition":"where condition",
"PrimaryKey":"待同步表的主键列,多列用逗号分隔",
"PartKey":"待同步表的分布列,多列用逗号分隔",
"ColumnIncludes":[{
"ColumnName":"待同步表中需同步的列名",
"NewColumnName":"待同步的列在目标表中映射的列名"
}],
"ColumnExcludes":[{
"ColumnName":"待同步表中不需要同步的列名"
}]
}],
"TableExcludes": [{
"TableName": "该库中不需要同步的表名"
}]
}]
补充说明
参数 | 说明 |
SchemaName | 当源库为SQL Server或PostgreSQL时,本参数才可用且必须传入。 |
NewSchemaName | 当目标库为SQL Server或PostgreSQL时,本参数才可用。 |
ALLTABLE | 待同步schema下所有表是否都需同步,默认为false,也可填true。 填写为false时,需传入参数TableIncludes和TableExcludes 填写为true时,只需传入参数TableIncludes。 |
PrimaryKey | 当目标库为云原生数仓AnalyticDB MySQL、云原生数据仓库 AnalyticDB PostgreSQL 版时,本参数才可用且必须传入。 |
PartKey | 当目标库为云原生数仓AnalyticDB MySQL、云原生数据仓库 AnalyticDB PostgreSQL 版时,本参数才可用且必须传入。 |
ColumnName、NewColumnName | 需保障源表的列名和目标表的列名的顺序一一对应,否则DTS可能找不到对应的列。 |
FilterCondition | 过滤条件,只有满足过滤条件的数据才会被同步到目标数据库中。 说明
|
同步对象配置示例
示例一:同步dtstestdata库中所有的表。
[{
"DBName": "dtstestdata"
}]
示例二:同步dtstestdata库中除表名前缀为order以外的所有表。
[{
"DBName": "dtstestdata",
"AllTable": false,
"TableExcludes": [{
"TableName": "order.*"
}]
}]
示例三:同步dtstestdata库中的customer表至云原生数仓AnalyticDB MySQL、云原生数据仓库 AnalyticDB PostgreSQL 版,且源表customer在目标表中的主键、分布键设为CREATE_TIME。
[{
"SchemaName": "dtstestdata",
"TableIncludes": [{
"TableName": "customer",
"PrimaryKey":"CREATE_TIME",
"PartKey":"CREATE_TIME",
}]
}]
支持的正则表达式
符号 | 规则描述 |
英文句号(.) | 表示匹配除‘\r\n’之外的任何单个字符。 |
星号(*) | 表示匹配前面子表达式任意次,例如: |
英文问号(?) | 表示匹配前面子表达式零次或1次,例如: |
[characters] 字符集合 | 表示匹配方括号内任意一个字符,例如: |
[^characters] 负值字符集合 | 表示不匹配方括号内任意一个字符,例如: |
[character1-character2] 字符范围 | 表示匹配character1-character2范围内的字符,例如: [0-9]、[a-z]。 |