云原生数据仓库 AnalyticDB MySQL 版支持通过Hive数据迁移将Hive数据迁移至OSS。本文介绍如何添加Hive数据源,新建Hive迁移链路并启动任务,以及数据迁移后如何进行数据分析和管理数据迁移任务。
功能介绍
AnalyticDB for MySQL支持新建Hive数据迁移任务,通过迁移任务将Hive元数据和数据一键迁移到OSS,或多库多表并行迁移到OSS。
前提条件
AnalyticDB for MySQL集群的产品系列为湖仓版。
已在AnalyticDB for MySQL集群中创建Job型资源组。具体操作,请参见新建资源组。
已创建AnalyticDB for MySQL集群的数据库账号。
如果是通过阿里云账号访问,只需创建高权限账号。具体操作,请参见创建高权限账号。
如果是通过RAM用户访问,需要创建高权限账号和普通账号并且将RAM用户绑定到普通账号上。具体操作,请参见创建数据库账号和绑定或解绑RAM用户与数据库账号。
在AnalyticDB for MySQL集群的相同地域,已创建阿里云E-MapReduce集群或ECS自建CDH集群,具体要求如下:
E-MapReduce集群。E-MapReduce集群业务场景为新版数据湖,元数据类型为自建 RDS或内置 MySQL,具有Hive服务,且Hive 存储模式为HDFS(即去勾选数据湖存储)。具体操作,请参见创建集群。
重要元数据类型为DLF 统一元数据的E-MapReduce集群,暂不支持迁移Hive数据至OSS。
Hive存储模式为数据湖存储的E-MapReduce集群,数据存储在OSS中,可以通过元数据发现功能将数据导入AnalyticDB for MySQL。具体操作,请参见通过元数据发现导入至湖仓版。
ECS自建CDH集群。
已创建Hive库表,且Hive表为分区表。具体操作,请参见Hive基础操作。
计费说明
通过AnalyticDB for MySQL数据迁移功能迁移数据至OSS会产生以下费用。
使用流程
新建Hive数据源
如果已添加过Hive数据源,可跳过此步骤,直接新建迁移链路,详情请参见新建数据迁移任务。
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在湖仓版页签下,单击目标集群ID。
在左侧导航栏,单击数据接入>数据源管理。
单击右上角新建数据源。
在新建数据源页面进行参数配置。参数说明如下表所示:
阿里云实例
参数名称
参数说明
数据源类型
选择数据源类型Hive。
数据源名称
系统默认会按数据源类型与当前时间生成名称,可按需修改。
数据源描述
数据源备注描述,例如湖仓应用场景、应用业务限制等。
部署模式
如果您使用的是E-MapReduce的Hive服务,请选择阿里云实例。
实例
选择数据源指向的E-MapReduce实例。
Hive Metastore Uri
访问Hive MetaStore的连接地址。格式为
thrift://<Master节点的IP地址>:<端口号>
,端口号默认为9083。Master节点的IP地址查看方法:
登录EMR on ECS控制台,在节点管理页签,单击emr-master节点前的,查看Master节点的内网地址。
ECS自建CDH
参数名称
参数说明
数据源类型
选择数据源类型Hive。
数据源名称
系统默认会按数据源类型与当前时间生成名称,可按需修改。
数据源描述
数据源备注描述,例如湖仓应用场景、应用业务限制等。
部署模式
如果您是在ECS自建的CDH集群,请选择ECS自建CDH。
实例
选择数据源指向的ECS实例。
Hive Metastore Uri
访问Hive MetaStore的连接地址,即CDH Master节点对应的ECS实例的公网IP。格式为
thrift://<Master节点的IP地址>:<端口号>
,端口号默认为9083。Host配置信息
填写Host与IP的映射关系。每组映射关系换行分隔。
示例:
192.168.2.153 master.cdh
192.168.2.154 node1.cdh
192.168.2.155 node2.cdh
参数配置完成后,单击创建。
新建数据迁移任务
在左侧导航栏,单击数据迁移。
在右上角,单击新建迁移链路。
在新建迁移链路页面,进行数据源的数据源及目标端配置、迁移库表配置和迁移配置。
数据源及目标端配置参数说明
参数名称
参数说明
数据链路名称
数据链路名称。系统默认按数据源类型与当前时间生成名称,可按需修改。
数据源
选择已有的Hive数据源,也可新建数据源。
目标端类型
目前仅支持数据湖-OSS存储。
OSS路径
AnalyticDB for MySQL湖仓数据在OSS中的存储路径。
重要展示的Bucket是与AnalyticDB for MySQL集群同地域的所有Bucket,您可以任意选择其中一个。请谨慎规划存储路径,创建后不允许修改。
建议选择一个空目录,且不能与其他任务的OSS路径有相互前缀关系,防止数据覆盖。例如,两个数据同步任务的OSS路径分别为oss://adb_demo/test/sls1/和oss://adb_demo/test/,OSS路径有相互前缀关系,数据同步过程中会有数据覆盖。
迁移库表配置参数说明
重要若库表名同时出现在白名单和黑名单中,则以黑名单优先,即不会迁移。
参数名称
参数说明
迁移库表白名单
填入库表名正则表达式。与表达式匹配的库表会被迁移,多个表达式之间以英文逗号(,)分隔。
迁移库表黑名单
填入库表名正则表达式。与表达式匹配的库表不会被迁移,多个表达式之间以英文逗号(,)分隔。
迁移配置参数说明
参数名称
参数说明
目标端已存在同名表文件的处理
迁移时目标表已存在的处理逻辑:
跳过该表(不迁移):只跳过该表,其他表仍继续迁移。
报错拦截,暂停迁移:迁移任务暂停。同名表和其他库表都不会继续迁移。
Job型资源组
指定任务运行的Job型资源组。
所需ACU数
指定任务运行的Job型资源组ACU数。最小ACU数为4,最大ACU数为Job型资源组可用计算最大资源数。建议多指定一些ACU数,可以提升数据迁移性能及任务稳定性。
并行任务数
默认并行任务数为1,并行任务数上限为8。
调高该值后,会同时启动多个迁移任务,每个任务迁移一张表。但是每个任务至少需要4 ACU,如果ACU数较少,则迁移任务将串行执行。
高级配置
高级配置可以让您对同步任务进行个性化的配置。如需进行个性化配置,请联系技术支持。
上述参数配置完成后,单击提交。
启动数据迁移任务
在数据迁移页面,选择创建成功的数据迁移任务,在操作列单击启动。
单击右上角查询,状态变为正在启动即数据同步任务启动成功。
数据分析
迁移任务成功后,您也可以先通过元数据发现功能将OSS中的数据导入至湖仓版,然后在Spark Jar开发中对导入至湖仓版的数据进行分析。Spark开发的相关操作,请参见Spark开发编辑器和Spark离线应用开发。
在左侧导航栏,单击 。
在默认模板中输入示例语句,并单击立即执行。
-- Here is just an example of SparkSQL. Modify the content and run your spark program. conf spark.driver.resourceSpec=medium; conf spark.executor.instances=2; conf spark.executor.resourceSpec=medium; conf spark.app.name=Spark SQL Test; conf spark.adb.connectors=oss; -- Here are your sql statements show tables from lakehouse20220413156_adbTest;
可选:在应用列表页签中,单击操作列的日志,查看Spark SQL运行的日志。
管理数据迁移任务
在数据迁移页面,您可以在操作列执行以下操作。
操作按钮 | 说明 |
启动 | 启动数据迁移任务。 |
执行详情 | 可查看链路详细配置、迁移表数量及迁移详情等指标。 |
编辑 | 修改任务配置属性等 |
暂停 | 停止当前迁移任务。 |
删除 | 删除当前迁移任务。 |