MMA(MaxCompute Migration Assist)是一款MaxCompute数据迁移工具。本文为您介绍MMA的使用概述,帮助您快速了解并使用MMA。
功能简介
- Hive数据迁移到MaxCompute。
- MaxCompute跨项目数据迁移。
- EMR+DLF+OSS迁移MaxCompute项目。
数据迁移原理
Hive数据迁移原理
Hive数据迁移包含通过Hive UDTF迁移数据到MaxCompute、通过OSS迁移Hive数据到MaxCompute,本文为您介绍两种数据迁移方式的原理。
- 通过Hive UDTF迁移数据到MaxCompute。该场景通过Hive的分布式能⼒,实现Hive数据向MaxCompute的⾼并发传输。
- 前提条件。
Hive集群各节点已能够访问MaxCompute。
- 数据迁移过程。
- MMA通过Hive MetaStore获取元数据,即获取所有表名、表的Schema和分区信息。
- MMA在MaxCompute端根据获取到的Schema建表和分区。
- MMA向Hive提交执⾏UDTF的SQL命令。
- UDTF调⽤MaxCompute的Tunnel SDK向MaxCompute写入表数据。
- 数据校验。说明 校验⽅式:在Hive端和MaxCompute端对同⼀个表(或多个分区)执⾏
SELECT COUNT(*)
命令,通过对⽐两端的⾏数验证数据是否迁移成功。
- 前提条件。
- 通过OSS迁移Hive数据到MaxCompute。该场景会先将数据迁移到OSS, 然后通过MaxCompute读取OSS数据。数据迁移过程如下。
- 通过阿⾥云“闪电立方”服务或Jindo DistCp、Juicesync将数据从HDFS迁移到OSS。
- MMA通过Hive MetaStore获取元数据,即获取所有表、表的Schema、分区信息等。
- MMA在MaxCompute端根据获取到的Schema和OSS路径信息创建MaxCompute OSS外表和外表对应的普通表。
- 通过执行
INSERT 普通表 FROM SELECT OSS外表
命令将数据从OSS导⼊到MaxCompute。
MaxCompute数据迁移原理
MaxCompute数据迁移包含同Region项目迁移、EMR+DLF+OSS迁移MaxCompute、跨Region项目迁移三种方式,本文为您介绍三种数据迁移方式的原理。
- 同Region项目迁移。
- 获取源项目中的所有表、分区,在目的项目中建表、分区。
- 执行SQL命令
INSERT OVERWRITE ⽬的表 FROM 源表 迁移数据
。
- EMR+DLF+OSS迁移MaxCompute。该场景需要通过MaxCompute+DLF建⽴MaxCompute的外部项目(External Project)。
- 获取源项目中的所有表、分区,在⽬的项目中建表、分区。
- 执行SQL命令
INSERT OVERWRITE ⽬的表 FROM 源表 迁移数据
。
- 跨Region项目迁移。
该场景使⽤的是MaxCompute的copytask任务,copytask可以将表数据从⼀个Region的项目,复制到另⼀个Region的项目。
前提条件:源项目已开启允许使用copytask的开关。
MMA任务与子任务
- MMA可以以单个数据库、多个表、多个分区为单位提交迁移任务。
- 迁移任务以“分区”和“⾮分区表”为单位进⾏子任务分割,子任务是实际执⾏迁移操作的单位。⼀个子任务迁移⼀个⾮分区表或⼀个/多个分区。
MMA迁移作业方案
本文为您介绍Hadoop数据迁移至MaxCompute的两种迁移方案,您可以根据实际情况选择。
- 迁移链路一专线场景下,支持通过MMA迁移Hive数据至MaxCompute。迁移方案如下图所示。
- 迁移链路二无专线场景下,支持通过闪电立方迁移HDFS数据至OSS,再通过MMA将数据写入MaxCompute。迁移方案如下图所示。
使用向导
参考文档 | 说明 |
---|---|
MMA安装与配置 | 介绍配置MMA的准备工作以及配置流程。帮助您快速搭建MMA环境。 |
Hive数据迁移 | 介绍通过Hive UDTF迁移Hive数据的准备事项及操作步骤。帮助您快速了解Hive数据迁移的方式。 |
MaxCompute数据迁移 | 介绍数据迁移到MaxCompute的准备事项及操作步骤。帮助您快速了解MaxCompute数据迁移的方式。 |
分区过滤表达式说明 | 介绍分区过滤表达式的格式。帮助您在创建数据迁移任务时快速完成分区过滤的参数配置。 |
迁移任务查看与操作 | 介绍数据迁移任务的查看与操作,及增量迁移方法。帮助您快速了解迁移任务的功能。 |