ConfigureMigrationJob操作を呼び出すときは、MigrationObjectパラメーターを指定する必要があります。 このトピックでは、MigrationObjectパラメーターの定義と例を示します。
関連する API 操作
MigrationObjectパラメーターの定義
MigrationObjectパラメーターの値は、JSONオブジェクトの配列です。 正規表現がサポートされています。 次のスクリプトは、パラメーターの定義を示しています。
[
{
"DBName":"移行するデータベースの名前" 、
"NewDBName":"ターゲットインスタンスで使用するデータベース名" 、
"SchemaName":"移行するスキーマの名前" 、
"NewSchemaName":"ターゲットインスタンスで使用するスキーマ名" 、
"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 | スキーマ下のすべてのテーブルを移行するかどうかを指定します。 デフォルト値は false です。 値をtrueに変更できます。 値がfalseの場合、TableIncludesおよびTableExcludesパラメーターを指定する必要があります。 値がtrueの場合、TableIncludesパラメーターを指定する必要があります。 |
| PrimaryKey | このパラメーターは、ターゲットデータベースのエンジンタイプがAnalyticDB for MySQLまたはAnalyticDB for PostgreSQLの場合にのみ使用でき、指定する必要があります。 |
| パートキー | このパラメーターは、ターゲットデータベースのエンジンタイプがAnalyticDB for MySQLまたはAnalyticDB for PostgreSQLの場合にのみ使用でき、指定する必要があります。 |
| ColumnNameおよびColNewColumnNameumnName | ソーステーブルの列名がターゲットテーブルの列名に1つずつ対応していることを確認する必要があります。 そうしないと、DTSは対応する列を識別できない場合があります。 |
| FilterCondition | フィルター条件です。 指定された条件を満たすデータのみが移行先データベースに移行されます。 説明
|
設定例
例1: dtstestdataデータベース内のすべてのテーブルを移行します。
[{
"DBName": "dtstestdata"
}] 例2: dtstestdataデータベース内のすべてのテーブルを、ターゲットインスタンスのmysqltestデータベースに移行します。
[{
"DBName": "dtstestdata" 、
"NewDBName": "mysqltest"
}] 例3: dtstestdataデータベースおよびmysqltestデータベース内のすべてのテーブルを移行します。
[{
"DBName": "dtstestdata"
},{
"DBName": "mysqltest"
}] 例4: 名前の先頭に "order" が付いているテーブルを除く、dtstestdataデータベース内のすべてのテーブルを移行します。
[{
"DBName": "dtstestdata" 、
"AllTable": false、
"TableExcludes": [{
"TableName": "order.*"
}]
}]例5: dtstestdataデータベースの顧客テーブルを移行し、ID列の値が100を超えるデータのみを移行します。
[{
"SchemaName": "dtstestdata" 、
"TableIncludes": [{
"TableName": "customer" 、
"FilterCondition": "id > 100"
}]
}]例6: dtstestdataデータベースの顧客テーブルを移行し、テーブルのID列とアドレス列のみを移行します。
[{
"SchemaName": "dtstestdata" 、
"TableIncludes": [{
"TableName": "customer" 、
"ColumnIncludes": [{
"ColumnName": "id"
},
{
"ColumnName": "address"
}
]
}]
}]例7: dtstestdataデータベースの顧客テーブルをAnalyticDB for MySQLまたはAnalyticDB for PostgreSQLに移行し、ターゲットテーブルのプライマリキーと配布キーをCREATE_TIMEに設定します。
[{
"SchemaName": "dtstestdata" 、
"TableIncludes": [{
"TableName": "customer" 、
"PrimaryKey":"CREATE_TIME" 、
"PartKey":"CREATE_TIME" 、
}]
}]サポートされている正規表現
| シンボル | 説明 |
| ピリオド (.) | '\r\n' を除く任意の単一の文字と一致します。 |
| アスタリスク (*) | 前のサブ式の0回以上の繰り返しと一致します。 たとえば、h.* lloはhlloやheeeelloなどの文字列と一致します。 |
| 疑問符 (?) | 前のサブ式の0または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]) と一致する。 |