通过数据迁移服务MMS(MaxCompute Migration Service)迁移数据前,需新增并启动Hive数据源,确保数据源与MMS服务网络连通,并将Hive的元数据同步至MMS服务,以便配置后续的迁移作业。
适用范围
迁移限制:不支持__HIVE_DEFAULT_PARTITION__分区迁移。
迁移费用
MMS数据迁移会由于消耗各类资源而产生费用,主要组成费用如下:
MMS操作 | 计费项 | 收费方 |
| 计算费用:MaxCompute端产生Spark作业消耗计算资源。 | 阿里云 MaxCompute |
元数据同步 | API调用费用:使用AWS-Glue Data Catalog时产生。 | Hive |
源端数据存储 | 存储费用:若使用OSS/S3等对象存储,源端访问存储文件时产生。 | Hive |
若迁移任务配置了“开启校验” | 计算费用:在Hive和MaxCompute分别执行校验SQL语句产生。 | 阿里云 MaxCompute和Hive |
网络配置 | 网络费用:
| 专线提供方或阿里云网络 |
操作步骤
目标端MaxCompute项目已完成准备工作。
步骤一:外部数据源准备
在Hive端准备读取数据时,需要使用的用户账号和相关权限。
当
meta-type为Glue时,需要准备可以读取Glue元数据的AWS账号。当
storage-type为S3时,需要准备可以读取S3数据的AWS账号。当
storage-type为OSS时,需要准备可以读取OSS数据的阿里云账号。如果使用Hive进行数据校验,需要准备能通过Hive JDBC执行SQL的Hive账号。
如果使用AWS-Athena进行数据校验,AWS账号需要具备在Athena的可执行权限。
步骤二:新增数据源
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择。
在数据源页签,单击新增数据源。
在弹出的MaxCompute服务关联角色对话框中,单击确认,即可创建成功。若未自动弹出该对话框,则表明该角色已创建。
在新增数据源页面,配置数据源信息,然后单击新增,完成数据源创建。
数据源基本信息
参数名
是否必填
说明
数据源名称
是
数据源名称,可自定义,不能包含字符、数字、汉字之外的特殊字符。
数据源类型
是
选择Hive。
网络连接
是
选择需要使用的网络连接。
网络连接在MaxCompute 模块创建,用于MMS与VPC通信,最终连接数据源。
元数据服务类型
是
HMS:默认的元数据管理服务
hive meta server,该类型需填写如下参数。Metastore地址
AWS-GLUE:统一元数据管理服务
Glue,该类型需填写如下参数。AWS 地域
AWS Access Key Id
AWS Access Key Secret
存储服务类型
是
可多选:当元数据服务类型为
AWS-GLUE时不支持ALIYUN-OSS。HDFS
ALIYUN-OSS,该类型需填写如下参数。
OSS Endpoint
OSS Access Id
OSS Access Key
AWS-S3:填写用于连接AWS-S3的S3 Endpoint。
Hive版本
是
根据实际情况选择。
Jdbc连接串
否
Hive JDBC的连接信息。格式为
jdbc:hive2://localhost:10000/default。Jdbc用户名
否
Hive JDBC的用户名。
Jdbc密码
否
Hive JDBC的密码。
maxcompute 迁移任务sql参数
否
SQL参数。参考Flag参数列表。
默认目标MaxCompute项目
是
数据迁移时选择映射的目标项目,不可修改。
目标MaxCompute项目列表
否
若一个数据源的数据需要迁移到多个目标项目,需配置目标MaxCompute项目列表。
MaxCompute执行迁移作业的项目
是
迁移过程中,执行在MaxCompute上发起的Spark、SQL等迁移作业的项目,并使用该项目关联的默认计算Quota。
Kerberos信息
参数名
说明
Kerberos认证
Hive metastore是否开启了Kerberos认证。若开启,则需要填写Kerberos Principal。
Kerberos Principal
Kerberos身份认证标识。与krb5.conf里的kdc_realm值保持一致。
其他信息
以下参数均非必填,根据需要填写。
参数名
说明
Hive Job配置
用于mr, spark, tez等引擎
Metastore定时更新
数据源元数据是否定时拉取。取值说明如下:
启用:定时拉取,更新周期支持每天和每小时,支持配置更新开始时间。
每日更新:定时器每天运行一次,运行时刻为选定的24小时内的某一时间(精确到分钟)。
每小时更新:定时器每小时运行一次,运行时刻为选定的60分钟内的某一分钟。
禁用:不定时拉取。
Metastore访问并发量
访问MetaStore的并发量,默认为3。
库白名单
需要迁移的Schema,多个值之间以半角逗号(,)分隔。
库黑名单
不需要迁移的Schema,多个值之间以半角逗号(,)分隔。
表黑名单
不需要迁移的Hive数据表。
单个表的格式为
schema.table或table,多个表之间以半角逗号(,)分隔。表白名单
需要迁移的Hive数据表。
单个表的格式为
schema.table或table,多个表之间以半角逗号(,)分隔。数据搬迁任务最大并发量
MMS最大迁移任务的并发量。过大的并发量可能造成Databricks的计算负载压力过大。默认20。
表名字符转换配置
格式为JSON,如{"%": "_"}用于将源表里的特殊字符映射为MaxCompute支持的字符。
单个任务处理的最多分区数量
默认50。即一次MMA任务迁移的分区数量,通过批量的分区迁移,可以减少提交SQL的次数,节约SQL提交时间。一般不需要修改。
单个任务处理的最大数量(单位G)
默认5G。一般不需要修改。
分区特殊字符映射
格式为JSON,如{"/": "_"}用于将源分区值中的特殊字符映射为MaxCompute支持的字符。
Spark访问hadoop用户名
简单鉴权模式下,默认使用admin作为Spark访问Hadoop的用户名,也可通过此参数指定。
默认非法分区名
Hive的默认非法分区名称。
如果Hive使用的引擎不是MR,则需要通过指定“hive.execution.engine”值来设置Hive使用的引擎,并且用于不同引擎的任务参数需要自行调整。该配置用于解决YARN Container内存不足、指定Spark运行队列等问题。
步骤三:同步元数据
数据源启动后会生成一个作业实例,实现数据源与MMS服务的连接,再将源数据同步至MMS服务,以便配置后续迁移作业。
该作业实例会占用4 CU计算资源。当数据源无任何等待运行或正在运行的迁移作业或元数据同步作业时,系统会关闭数据源,使用时需再次启动。
在数据源页签,单击目标数据源对应的操作列的更新元数据。
在数据源页签,可以查看目标数据源的运行状态。
若数据源的元数据存在变动,且启用了元数据定时更新,系统会按照配置的时间定时更新,无需手动进行元数据同步操作。
外部数据源配置完成后,创建迁移作业。