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]) と一致する。 |