在調用ConfigureSynchronizationJob介面或ModifySynchronizationObject介面時,您需要傳入同步對象參數。本文為您介紹同步對象的定義和配置案例。
相關介面
同步對象定義說明
同步對象(SynchronizationObjects)的取實值型別為Object,支援一定的Regex,詳細定義如下所示。
[{
"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 for PostgreSQL時,本參數才可用且必須傳入。 |
PartKey | 當目標庫為雲原生數倉AnalyticDB MySQL、AnalyticDB for PostgreSQL時,本參數才可用且必須傳入。 |
ColumnName、NewColumnName | 需保障源表的列名和目標表的列名的順序一一對應,否則DTS可能找不到對應的列。 |
FilterCondition | 過濾條件,只有滿足過濾條件的資料才會被同步到目標資料庫中。 說明
|
同步對象配置樣本
樣本一:同步dtstestdata庫中所有的表。
[{
"DBName": "dtstestdata"
}]樣本二:同步dtstestdata庫中除表名首碼為order以外的所有表。
[{
"DBName": "dtstestdata",
"AllTable": false,
"TableExcludes": [{
"TableName": "order.*"
}]
}]樣本三:同步dtstestdata庫中的customer表至雲原生數倉AnalyticDB MySQL、AnalyticDB for PostgreSQL,且源表customer在目標表中的主鍵、分布鍵設為CREATE_TIME。
[{
"SchemaName": "dtstestdata",
"TableIncludes": [{
"TableName": "customer",
"PrimaryKey":"CREATE_TIME",
"PartKey":"CREATE_TIME",
}]
}]支援的Regex
符號 | 規則描述 |
英文句號(.) | 表示匹配除‘\r\n’之外的任何單個字元。 |
星號(*) | 表示匹配前面子運算式任意次,例如: |
英文問號(?) | 表示匹配前面子運算式零次或1次,例如: |
[characters] 字元集合 | 表示匹配方括弧內任意一個字元,例如: |
[^characters] 負值字元集合 | 表示不匹配方括弧內任意一個字元,例如: |
[character1-character2] 字元範圍 | 表示匹配character1-character2範圍內的字元,例如: [0-9]、[a-z]。 |