迁移服务(MMS)

MaxCompute数据迁移服务MMS(MaxCompute Migration Service)支持将多种数据源的数据迁移至MaxCompute。MMS通过与MaxCompute Spark引擎集成,简化了从自建数据源到MaxCompute的大规模数据迁移过程,降低了配置复杂度和运维成本。

功能概述

迁移架构

MaxCompute数据迁移服务MMS支持元数据和数据迁移。

image
  • 元数据迁移:通过元数据API(如Hive Metastore SDK、DataBricks SDK)从数据源获取元数据,生成MaxCompute DDL语句并在MaxCompute中执行以完成元数据迁移。

  • 数据迁移:元数据结构同步后,MMS根据迁移作业的配置,生成并提交一个或多个Spark作业在MaxCompute上运行。这些Spark作业从数据源拉取数据,并写入MaxCompute的目标表中。该过程由MMS服务托管,无需进行Spark作业的开发和运维。

迁移流程

下图展示了MaxCompute数据迁移服务(MMS)的内部工作原理,整个流程可以概括为以下几个核心步骤:

  1. 元数据加载:用户创建迁移作业后,MMS首先连接到外部数据源,读取并加载其元数据(如表结构、分区信息等),并将其存储在MMS自身的数据库中以供后续使用。

  2. 创建迁移作业:MMS支持单库整库迁移、部分迁移(多表)、部分迁移(多分区)三种迁移作业类型。每个迁移作业会拆分多个子任务并发执行数据迁移。

  3. 数据与元数据传输:每个并行的子任务独立地从数据源拉取实际数据,先在目标项目创建对应的目标表/分区,再写入数据。

  4. 数据校验(可选):数据写入完成后,MMS支持执行数据校验步骤。比对源端和目标端的表/分区数据条数,初步验证数据的完整性。

image

术语简介

  • 数据源

    • 待迁移的对象,例如:Hive的一个或多个Database。不同的数据源有不同的数据层级,目前MMS会将不同数据源的数据层级映射为Database、SchemaTable三层,其中Schema作为Table的属性存在。数据源层级详情,如下表所示。

      数据源

      数据层级

      Hive

      Database.Table

      MaxCompute

      Project.Schema.TableProject.Table

    • 不同的数据源使用的取数API如下表:

      数据源类型

      取数API

      MaxCompute

      • 开放存储(Storage API)

      • SQL

      BigQuery

      Storage Read API

      Hive

      HDFSS3

      Databricks

      • Azure Bob Storage

      • Databricks JDBC

  • 迁移作业

    MMS迁移的对象可以是一个Database、多个Table或多个Partition,迁移作业可用于定义迁移对象。

  • 迁移任务

    选定迁移对象并提交迁移作业后,MMS会根据迁移作业的配置,将一个迁移作业拆分为多个独立的迁移任务,迁移任务是实际的执行单位,作业类型包括SparkSQL作业。每个任务可对应一个非分区表或一个分区表的多个分区,任务执行过程包含元数据迁移、数据迁移和数据校验。

  • 数据校验

    数据迁移完成后,MMS执行校验以保证数据一致性。校验方法是在源端和目标端分别执行 SELECT COUNT(*) 来对比表或分区的行数,用于验证数据完整性。校验结果记录在任务日志中。

迁移步骤

  • 步骤一:在使用数据迁移服务MMS(MaxCompute Migration Service)前的准备工作

  • 步骤二:使用数据迁移服务MMS迁移数据,需准备好待迁移数据源,不同数据源的配置方式参考管理数据源

  • 步骤三:创建并执行迁移作业操作。

  • 步骤四:可使用MMS迁移观测功能查看迁移作业的进度以及迁移速度。

常见问题

使用MMS进行数据迁移会产生哪些费用?

MaxCompute迁移服务(MMS)本身不收费。数据迁移过程中会产生以下费用:

  1. 目标端计算资源费用:MMS通过在MaxCompute项目内提交SparkSQL作业来执行数据迁移。这些作业会消耗MaxCompute的计算资源(CU),并按照MaxCompute的计费标准(按量付费或包年包月)计费。

  2. 网络传输费用:数据迁移过程中,需要网络打通,会产生相应的网络费用。

  3. 源端数据读取费用:MMS数据迁移过程中,通过调用各类数据源的取数接口读取数据,会根据各类数据源规则在源端产生相应的取数费用。

MMS、DataWorks数据集成在数据迁移场景中应如何选择?

  • MMS:MMS适用于整站或大批量数据非持续性搬迁。

  • DataWorks数据集成:适用于定时是持续性数据同步集成,同时支持丰富的数据源。