このトピックでは、MaxCompute Migration Serverless (MMS) を使用して、データソースから MaxCompute にデータを移行する方法について説明します。
前提条件
MaxCompute データソースを設定済みであるか、BigQuery データソースを設定済みである必要があります。
移行ジョブのタイプ
MMS は、3 つのタイプの移行ジョブをサポートしています。単一データベースの移行、部分移行 (複数テーブル)、および部分移行 (複数パーティション) です。
単一データベースの移行: 単一のデータベースを移行します。
部分移行 (複数テーブル): 1 つ以上のテーブルを移行します。
部分移行 (複数パーティション): 1 つ以上のパーティションを移行します。
手順
[MaxCompute コンソール] にログインし、上部のナビゲーションバーでターゲットリージョンを選択します。
左側のナビゲーションウィンドウで、
を選択します。[データソース] タブで、ターゲットデータソースの左側にある
をクリックしてデータベースリストを展開します。
ターゲットデータベースの [アクション] 列にある [全体移行] または [部分移行] をクリックし、関連パラメーターを設定します。
[部分移行] をクリックすると、ターゲットデータベースページに移動します。[テーブルリスト] タブまたは [パーティション] タブで、移行するテーブルまたはパーティションを選択し、[移行ジョブの作成] をクリックします。
パラメーター
必須
説明
[データベース名]
はい
デフォルト値は、移行するデータベースの名前です。
[ジョブ名]
はい
ジョブの名前。
[データソース]
はい
デフォルト値は、現在のデータソースの名前です。
[ソースデータベース]
はい
デフォルト値は、移行するデータベースの名前です。
[移行先 MaxCompute プロジェクト]
はい
移行先 MaxCompute プロジェクトの名前を選択します。
説明データソースが BigQuery の場合、移行先 MaxCompute プロジェクトは スキーマ をサポートしている必要があります。
[移行先スキーマ]
はい
移行先 MaxCompute プロジェクトでスキーマを選択します。スキーマの詳細については、「スキーマ関連の操作」をご参照ください。
[テーブルのブラックリストとホワイトリスト]
いいえ
[ホワイトリスト] または [ブラックリスト] を選択できます。
ホワイトリスト: 移行するテーブルの名前。複数のテーブル名はカンマ (,) で区切ります。
説明部分移行 (複数テーブル) を実行する場合、ホワイトリストには選択したテーブルが含まれます。
データベース全体の移行を実行する場合、ホワイトリストはデフォルトで空です。
ブラックリスト: 移行する必要のないテーブルの名前。複数のテーブル名はカンマ (,) で区切ります。
部分移行 (複数パーティション) を実行する場合、このパラメーターを設定する必要はありません。
[ETA]
いいえ
ジョブの完了予定時刻を選択します。MMS サービスは、この時刻に基づいてジョブの優先順位を付けます。
[チェックを有効にする]
いいえ
このスイッチがオンになっている場合、MMS はソースパーティションと移行先パーティションで個別に
SELECT COUNT(*)
を実行して、移行オブジェクトの行数を取得し、行数に基づいてデータが正常に移行されたかどうかを確認します。[移行されていないデータのみを移行する]
いいえ
このスイッチがオンになっている場合、新しいタスクは正常に移行されたパーティションを無視します。
[スキーマのみを移行する]
いいえ
データを移行せずに、MaxCompute に対応するテーブルとパーティション構造のみを作成するかどうかを指定します。
[パーティションフィルター]
いいえ
パーティションフィルター式。例:
p1 >= '2022-03-04' and (p2 = 10 or p3 > 20) and p4 in ('abc', 'cde')
.p1、p2、p3 はパーティション名です。
パーティション値には、文字列と数値のみが含まれます。文字列は二重引用符または単一引用符で囲みます。
INT 型と BIGINT 型のパーティションキー列の値を除き、他の型のパーティション値は文字列のみです。
比較演算子には、次のものが含まれます:
>, >=, =, <, <=, <>
.パーティションフィルター式は、
IN
演算子をサポートしています。論理演算子には、次のものが含まれます:
AND
およびOR
.括弧 () がサポートされています。
[テーブル名マッピング]
いいえ
MaxCompute に移行した後のテーブルの名前。
[フィールド名マッピング]
いいえ
MaxCompute に移行した後の列の名前。
[その他の設定]
いいえ
TableType マッピングの場合、設定項目は JSON 形式です。例:
{ "mc.table.type": { "dataset1.table1":{"table.type":"delta","pk":["id1"]}, "dataset2.table2":{"table.type":"delta","pk":["id1","id2"]}, "dataset2.table2":{"table.type":"transactional"} } }
.[送信] をクリックして、移行ジョブの作成を完了します。
ジョブが作成されると、[移行ジョブ] タブで移行ジョブのステータスを確認できます。移行ジョブが失敗した場合:
ターゲットジョブの [アクション] 列にある [詳細] をクリックして、[移行タスク] ページに移動します。次に、ターゲットタスクの [アクション] 列にある [ログ] をクリックして、失敗の理由を表示します。
ターゲットジョブの [アクション] 列にある [再試行] をクリックして、移行ジョブを再実行します。
説明データ移行には、スキーマ移行、データ移行、データ検証の 3 つの段階があります。移行ジョブのタスクが失敗した場合、[再試行] をクリックすると、移行タスクはデータ移行段階から再開されます。
付録: データ型マッピング
次の表に、BigQuery と MaxCompute 間のデータ型マッピングの詳細を示します。
BigQuery データ型 | MaxCompute データ型 |
ARRAY | ARRAY |
BOOLEAN | BOOLEAN |
BYTES | BINARY |
DATE | DATE |
DATETIME | TIMESTAMP_NTZ |
Geography | STRING |
INTERVAL | STRING |
JSON | JSON |
INT64 | BIGINT |
NUMERIC | DECIMAL(38, 9) |
BIGNUMERIC | DECIMAL(x, y) 説明 パラメーター x および y は構成可能です。デフォルト値は DECIMAL(38, 18) です。 |
FLOAT64 | DOUBLE |
RANGE | STRING |
STRING | STRING |
STRUCT | STRUCT |
TIME | BIGINT |
TIMESTAMP | TIMESTAMP |