すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:MigrationObject

最終更新日:Jan 22, 2025

ConfigureMigrationJob操作を呼び出すときは、MigrationObjectパラメーターを指定する必要があります。 このトピックでは、MigrationObjectパラメーターの定義と例を示します。

関連する API 操作

ConfigureMigrationJob

MigrationObjectパラメーターの定義

MigrationObjectパラメーターの値は、JSONオブジェクトの配列です。 正規表現がサポートされています。 次のスクリプトは、パラメーターの定義を示しています。

[
    {
        "DBName":"移行するデータベースの名前" 、
        "NewDBName":"ターゲットインスタンスで使用するデータベース名" 、
        "SchemaName":"移行するスキーマの名前" 、
        "NewSchemaName":"ターゲットインスタンスで使用するスキーマ名" 、
        "AllTable": false、
        "TableIncludes":[
            {
                "TableName":"移行するテーブルの名前" 、
                "NewTableName":"ターゲットインスタンスで使用するテーブル名" 、
                "FilterCondition":"where condition" 、
                "PrimaryKey":"移行するテーブルの主キー列。 複数の値をコンマ (,)."で区切ります。
                "PartKey":"移行するテーブルの配布列。 複数の値をコンマ (,)."で区切ります。
                "ColumnIncludes":[
                    {
                        "ColumnName":"ソーステーブルから移行する列の名前" 、
                        "NewColumnName":"ターゲットインスタンスで使用する列名"
                    }
                ],
                "ColumnExcludes":[{
                    "ColumnName":"ソーステーブルから移行しない列の名前"
                }]
            }
        ],
        "TableExcludes":[{
            "TableName":"移行しないテーブルの名前"
        }]
    }
]
表 1. 追加の説明
パラメーター説明
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フィルター条件です。 指定された条件を満たすデータのみが移行先データベースに移行されます。
説明
  • フィルター条件は、標準のSQL WHEREステートメントにすることができます。
  • 必要に応じて、フィルタ条件でアポストロフィ (') を使用できます。 たとえば、address in('hangzhou','shanghai') を入力できます。

設定例

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