MaxCompute Migration Service (MMS) は、さまざまなデータソースから MaxCompute にデータを移行します。MaxCompute Spark エンジンと統合して、自己管理データソースからの大規模なデータ移行を簡素化し、構成の複雑さと運用保守 (O&M) コストを削減します。
概要
アーキテクチャ
MaxCompute Migration Service (MMS) は、メタデータとデータの両方を移行します。
メタデータ移行: MMS は、Hive Metastore SDK や DataBricks SDK などのメタデータ API を使用して、データソースからメタデータを取得します。その後、MaxCompute データ定義言語 (DDL) 文を生成し、MaxCompute で実行してメタデータ移行を完了します。
データ移行: メタデータが同期された後、MMS は移行ジョブの構成に基づいて、MaxCompute で実行される 1 つ以上の Spark ジョブを生成して送信します。これらの Spark ジョブは、データソースからデータをプルし、MaxCompute のターゲットテーブルに書き込みます。このプロセスは MMS サービスによって管理されるため、Spark ジョブの開発や O&M は不要になります。
移行フロー
次の図は、MaxCompute Migration Service (MMS) のワークフローを示しています。このプロセスには、次のコアステップが含まれます。
メタデータのロード: 移行ジョブを作成すると、MMS は外部データソースに接続して、テーブルスキーマやパーティション情報などのメタデータを読み込んでロードします。その後、MMS は後で使用するためにメタデータを独自のデータベースに保存します。
移行ジョブの作成: MMS は、完全なデータベース移行、部分的なテーブル移行、部分的なパーティション移行の 3 種類の移行ジョブをサポートしています。各移行ジョブは、データを移行するために同時に実行される複数のサブタスクに分割されます。
データとメタデータの転送: 各同時サブタスクは、データソースから独立してデータをプルします。まず、宛先プロジェクトに対応するターゲットテーブルまたはパーティションを作成し、次にデータを書き込みます。
データの検証 (オプション): データが移行された後、MMS はデータ検証ステップを実行できます。ソースと宛先のテーブルまたはパーティションの行数を比較することで、データ整合性を検証します。
用語集
データソース
移行対象のオブジェクト (1 つ以上の Hive データベースなど)。データソースごとにデータ層が異なります。MMS は、さまざまなデータソースのデータ層を、データベース、スキーマ、テーブルの 3 つの層にマッピングします。スキーマはテーブルのプロパティです。次の表にデータ層を示します。
データソース
データ層
Hive
Database.TableMaxCompute
Project.Schema.TableまたはProject.Table次の表に、さまざまなデータソースで使用される データ取得 API を示します。
データソースタイプ
データ取得 API
MaxCompute
Storage API
SQL
BigQuery
Storage Read API
Hive
HDFS または S3
Databricks
Azure Blob Storage
Databricks JDBC
移行ジョブ
移行ジョブは、移行するオブジェクトを定義します。オブジェクトには、データベース、複数のテーブル、または複数のパーティションを指定できます。
移行タスク
移行するオブジェクトを選択して移行ジョブを送信すると、MMS は構成に基づいてジョブを複数の独立した移行タスクに分割します。移行タスクは実際の実行単位です。タスクの種類には、Spark ジョブと SQL ジョブがあります。各タスクは、非パーティションテーブル、またはパーティションテーブルの複数のパーティションに対応できます。タスクの実行プロセスには、メタデータ移行、データ移行、データ検証が含まれます。
データ検証
データ移行が完了すると、MMS は検証を実行してデータ整合性を確保します。検証メソッドでは、ソースと宛先の両方で
SELECT COUNT(*)を実行して、テーブルまたはパーティションの行数を比較します。これにより、データ整合性が検証されます。検証結果は [タスクログ] に記録されます。
移行手順
ステップ 1: MaxCompute Migration Service (MMS) を使用する前に、前提条件を完了します。
ステップ 2: 移行するデータソースを準備します。さまざまなデータソースの設定方法の詳細については、「データソースの管理」をご参照ください。
ステップ 3: 移行ジョブの作成と実行。
ステップ 4: MMS の 移行モニタリング機能を使用して、移行ジョブの進行状況と速度を表示します。
よくある質問
MMS を使用してデータ移行を行う際に発生する料金は何ですか?
MaxCompute Migration Service (MMS) は無料です。データ移行中に次の料金が発生します。
宛先でのコンピューティングリソース料金: MMS は、MaxCompute プロジェクトで Spark または SQL ジョブを送信してデータ移行を実行します。これらのジョブは MaxCompute コンピューティングユニット (CU) を消費し、MaxCompute の課金基準に基づいて課金されます。サポートされている課金方法は、従量課金とサブスクリプションです。
ネットワークトラフィック料金: データ移行中にネットワーク接続が必要となり、ネットワークトラフィック料金が発生します。
ソースでのデータ読み取り料金: データ移行中、MMS はソースのデータ取得 API を呼び出してデータを読み取ります。これにより、ソースの課金ルールに基づいて、ソースからのデータ読み取り料金が発生する場合があります。
データ移行に MMS と DataWorks データ統合のどちらを選択すればよいですか?
MMS: MMS は、1 回限りの大規模なバッチデータ移行に適しています。
DataWorks データ統合: このサービスは、スケジュールされた継続的なデータ同期と統合に適しています。また、幅広いデータソースをサポートしています。