同步对象配置说明

在调用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时,需传入参数TableIncludesTableExcludes

填写为true时,只需传入参数TableIncludes

PrimaryKey

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

PartKey

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

ColumnNameNewColumnName

需保障源表的列名和目标表的列名的顺序一一对应,否则DTS可能找不到对应的列。

FilterCondition

过滤条件,只有满足过滤条件的数据才会被同步到目标数据库中。

说明
  • 过滤条件支持标准的SQL WHERE语句。

  • 过滤条件中如需使用引号,请使用英文单引号('),例如address in('hangzhou','shanghai')

同步对象配置示例

示例一:同步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’之外的任何单个字符。

星号(*)

表示匹配前面子表达式任意次,例如:h.*llo将匹配 hllo或heeeello等字符串。

英文问号(?)

表示匹配前面子表达式零次或1次,例如:h.?llo将匹配hllo或hello,但不能匹配haello。

[characters] 字符集合

表示匹配方括号内任意一个字符,例如:h[ae]llo将匹配hallo或hello。

[^characters] 负值字符集合

表示不匹配方括号内任意一个字符,例如:h[^ae]llo将匹配hcllo或hdllo,但不能匹配hallo或hello。

[character1-character2] 字符范围

表示匹配character1-character2范围内的字符,例如: [0-9]、[a-z]。