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
コンピューティングエンジン
MaxCompute
Storage API
Spark
SQL
BigQuery
Storage Read API
Spark
Hive
HDFS
S3
OSS
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 Data Integration の使い分け
MMS:MMS は、1 回限りの大規模なバッチデータ移行に適しています。
DataWorks Data Integration:このサービスは、定期的かつ継続的なデータ同期と統合に適しています。また、幅広いデータソースをサポートしています。