在調用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]。 |