在调用ConfigureMigrationJob接口时,您需要传入迁移对象参数。本文为您介绍迁移对象参数的定义和配置案例。
相关接口
迁移对象定义说明
迁移对象(MigrationObject)的取值类型为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、ColNewColumnNameumnName | 需保障源表的列名和目标表的列名的顺序一一对应,否则DTS可能找不到对应的列。 |
FilterCondition | 过滤条件,只有满足过滤条件的数据才会被迁移到目标数据库中。 说明
|
迁移对象配置示例
示例一:迁移dtstestdata库中所有的表。
[{
"DBName": "dtstestdata"
}]
示例二:将dtstestdata库中所有的表迁移至目标实例的mysqltest库中。
[{
"DBName": "dtstestdata",
"NewDBName": "mysqltest"
}]
示例三:迁移dtstestdata和mysqltest库中所有的表。
[{
"DBName": "dtstestdata"
},{
"DBName": "mysqltest"
}]
示例四:迁移dtstestdata库中除表名前缀为order以外的所有表。
[{
"DBName": "dtstestdata",
"AllTable": false,
"TableExcludes": [{
"TableName": "order.*"
}]
}]
示例六:迁移dtstestdata库中的customer表,且只迁移ID列中的值大于100的数据。
[{
"SchemaName": "dtstestdata",
"TableIncludes": [{
"TableName": "customer",
"FilterCondition": "id > 100"
}]
}]
示例七:迁移dtstestdata库中的customer表,且只迁移表中的ID和address列。
[{
"SchemaName": "dtstestdata",
"TableIncludes": [{
"TableName": "customer",
"ColumnIncludes": [{
"ColumnName": "id"
},
{
"ColumnName": "address"
}
]
}]
}]
示例八:迁移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]。 |