MaxCompute Migration Service (MMS) は、さまざまなデータソースから MaxCompute へデータを移行します。MaxCompute Spark エンジンと統合することで、自社管理データソースからの大規模なデータ移行を簡素化し、設定の複雑さと運用保守 (O&M) コストを削減します。
概要
アーキテクチャ
MMS は、メタデータとデータの両方を移行します。
-
メタデータ移行:MMS は、Hive Metastore SDK や Databricks SDK などのメタデータ API を使用してデータソースからメタデータを取得します。その後、MaxCompute データ定義言語 (DDL) ステートメントを生成し、MaxCompute で実行してメタデータ移行を完了します。
-
データ移行:メタデータが同期された後、MMS は移行ジョブの設定に基づいて、MaxCompute で実行される 1 つ以上の Spark ジョブを生成して送信します。これらの Spark ジョブは、データソースからデータを取得し、MaxCompute のターゲットテーブルに書き込みます。このプロセスは MMS によって管理されるため、Spark ジョブの開発や運用保守が不要になります。
移行フロー
次の図は、MMS のワークフローを示しています。このプロセスには、次のコアステップが含まれます。
-
メタデータのロード:移行ジョブを作成すると、MMS は外部データソースに接続し、テーブルスキーマやパーティション情報などのメタデータを読み込みます。その後、MMS はメタデータを独自のデータベースに保存し、後で使用できるようにします。
-
移行ジョブの作成:MMS は、データベース全体の移行、一部のテーブルの移行、一部のパーティションの移行という 3 種類の移行ジョブをサポートしています。各移行ジョブは、並行して実行される複数のサブタスクに分割され、データが移行されます。
-
データとメタデータの転送:各並行サブタスクは、データソースからデータを独立して取得します。まず、宛先プロジェクトに対応するターゲットテーブルまたはパーティションを作成し、その後データを書き込みます。
-
データ検証 (オプション):データ移行が完了した後、MMS はデータ検証を実行できます。ソースと宛先のテーブルまたはパーティションの行数を比較することで、データ整合性を検証します。
用語集
-
データソース
-
移行対象のオブジェクトです。1 つ以上の Hive データベースなどが含まれます。データソースごとに異なるデータ階層があります。MMS は、さまざまなデータソースのデータ階層を、Database、Schema、Table の 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:MMS を使用する前に、準備を完了してください。
-
ステップ 2:移行するデータソースを準備してください。さまざまなデータソースの設定方法の詳細については、「データソースの管理」をご参照ください。
-
ステップ 3:移行ジョブを作成して実行してください。
-
ステップ 4:MMS の 移行監視機能を使用して、移行ジョブの進捗状況と速度を確認してください。
よくある質問
MMS を使用してデータを移行する場合、どのような料金が発生しますか?
MMS は無料でご利用いただけます。データ移行中に発生する料金は次のとおりです。
-
宛先のコンピューティングリソース料金:MMS は、データ移行を実行するために MaxCompute プロジェクトで Spark または SQL ジョブを送信します。これらのジョブは MaxCompute コンピューティングユニット (CU) を消費し、MaxCompute の課金基準に基づいて課金されます。サポートされている課金方法は、従量課金とサブスクリプションです。
-
ネットワークトラフィック料金:データ移行中はネットワーク接続が必要なため、ネットワークトラフィック料金が発生します。
-
ソースのデータ読み取り料金:データ移行中、MMS はソースのデータ取得 API を呼び出してデータを読み取ります。これにより、ソースの課金ルールに基づいて、ソースからのデータ読み取り料金が発生する場合があります。
データ移行に MMS と DataWorks Data Integration のどちらを選択すればよいですか?
-
MMS:MMS は、1 回限りの大規模なデータ移行に適しています。
-
DataWorks Data Integration:このサービスは、スケジュールされた継続的なデータ同期と統合に適しています。また、幅広いデータソースをサポートしています。