网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
文档首页/ 云数据迁移 CDM/ 最佳实践/ 使用教程/ MySQL数据迁移到MRS Hive分区表
更新时间:2024-10-10 GMT+08:00
分享

MySQL数据迁移到MRS Hive分区表

MapReduce服务(MapReduce Service,简称MRS)提供企业级大数据集群云服务,里面包含HDFS、Hive、Spark等组件,适用于企业海量数据分析。

其中Hive提供类SQL查询语言,帮助用户对大规模的数据进行提取、转换和加载,即通常所称的ETL(Extraction,Transformation,and Loading)操作。对庞大的数据集查询需要耗费大量的时间去处理,在许多场景下,可以通过建立Hive分区方法减少每一次扫描的总数据量,这种做法可以显著地改善性能。

Hive的分区使用HDFS的子目录功能实现,每一个子目录包含了分区对应的列名和每一列的值。当分区很多时,会有很多HDFS子目录,如果不依赖工具,将外部数据加载到Hive表各分区不是一件容易的事情。云数据迁移服务(CDM)可以轻松将外部数据源(关系数据库、对象存储服务、文件系统服务等)加载到Hive分区表。

下面使用CDM将MySQL数据导入到MRS Hive分区表为例进行介绍。

操作场景

假设MySQL上有一张表trip_data,保存了自行车骑行记录,里面有起始时间、结束时间,起始站点、结束站点、骑手ID等信息,trip_data表字段定义如图1所示。

图1 MySQL表字段

使用CDM将MySQL中的表trip_data导入到MRS Hive分区表,流程如下:

  1. 在MRS Hive上创建Hive分区表
  2. 创建CDM集群并绑定EIP
  3. 创建MySQL连接
  4. 创建Hive连接
  5. 创建迁移作业

前提条件

  • 已经购买MRS。
  • 已获取连接MySQL数据库的IP地址、端口、数据库名称、用户名、密码,且该用户拥有MySQL数据库的读写权限。
  • 已在CDM集群的作业管理 > 连接管理 > 驱动管理页面,上传了MySQL数据库驱动。

在MRS Hive上创建Hive分区表

在MRS的Hive上使用下面SQL语句创建一张Hive分区表,表名与MySQL上的表trip_data一致,且Hive表比MySQL表多建三个字段y、ym、ymd,作为Hive的分区字段。SQL语句如下:
1
create table trip_data(TripID int,Duration int,StartDate timestamp,StartStation varchar(64),StartTerminal int,EndDate timestamp,EndStation varchar(64),EndTerminal int,Bike int,SubscriberType varchar(32),ZipCodev varchar(10))partitioned by (y int,ym int,ymd int);

Hive表trip_data有三个分区字段:骑行起始时间的年、骑行起始时间的年月、骑行起始时间的年月日,例如一条骑行记录的起始时间为2018/5/11 9:40,那么这条记录会保存在分区trip_data/2018/201805/20180511下面。对trip_data按时间维度统计汇总时,只需要对局部数据扫描,从而提升性能。

创建CDM集群并绑定EIP

  1. 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。

    关键配置如下:

    • CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。
    • CDM集群所在VPC、子网、安全组,选择与MRS集群所在的网络一致。

  2. CDM集群创建完成后,选择集群操作列的“绑定弹性IP”,CDM通过EIP访问MySQL。

    图2 集群列表

    如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。

创建MySQL连接

  1. 在CDM集群管理界面,单击集群后的“作业管理”,选择连接管理 > 新建连接,进入连接器类型的选择界面,如图3所示。

    图3 选择连接器类型

  2. 选择“MySQL”后单击“下一步”,配置MySQL连接的参数。

    单击“显示高级属性”可查看更多可选参数,具体请参见配置云数据库MySQL/MySQL数据库连接。这里保持默认,必填参数如表1所示。

    表1 MySQL连接参数

    参数名

    说明

    取值样例

    名称

    输入便于记忆和区分的连接名称。

    mysqllink

    数据库服务器

    MySQL数据库的IP地址或域名。

    -

    端口

    MySQL数据库的端口。

    3306

    数据库名称

    MySQL数据库的名称。

    sqoop

    用户名

    拥有MySQL数据库的读、写和删除权限的用户。

    admin

    密码

    用户的密码。

    -

    使用本地API

    使用数据库本地API加速(系统会尝试启用MySQL数据库的local_infile系统变量)。

    使用Agent

    Agent功能待下线,无需配置。

    -

    local_infile字符集

    MySQL通过local_infile导入数据时,可配置编码格式。

    utf8

    驱动版本

    CDM连接关系数据库前,需要先上传所需关系数据库的JDK8版本.jar格式驱动。MySQL的驱动请从https://downloads.mysql.com/archives/c-j/选择5.1.48版本下载,从中获取mysql-connector-java-5.1.48.jar,然后进行上传。

    -

  3. 单击“保存”回到连接管理界面。

    如果保存时出错,一般是由于MySQL数据库的安全设置问题,需要设置允许CDM集群的EIP访问MySQL数据库。

创建Hive连接

  1. 单击CDM集群后的“作业管理”,进入作业管理界面,再选择连接管理 > 新建连接,进入选择连接器类型的界面,如图4所示。

    图4 选择连接器类型

  2. 连接器类型选择“MRS Hive”后单击“下一步”配置Hive连接参数。

    各参数说明如表2所示,需要您根据实际情况配置。

    表2 MRS Hive连接参数

    参数名

    说明

    取值样例

    名称

    连接的名称,根据连接的数据源类型,用户可自定义便于记忆、区分的连接名。

    hivelink

    Manager IP

    MRS Manager的浮动IP地址,可以单击输入框后的“选择”来选定已创建的MRS集群,CDM会自动填充下面的鉴权参数。
    说明:

    当前DataArts Studio不支持对接“Kerberos加密类型”为“aes256-sha2,aes128-sha2”的MRS集群。如需对接MRS集群,请注意“Kerberos加密类型”应为“aes256-sha1,aes128-sha1”。

    127.0.0.1

    认证类型

    访问MRS的认证类型:
    • SIMPLE:非安全模式选择Simple鉴权。
    • KERBEROS:安全模式选择Kerberos鉴权。

    SIMPLE

    Hive版本

    Hive的版本。根据服务端Hive版本设置。

    HIVE_3_X

    用户名

    选择KERBEROS鉴权时,需要配置MRS Manager的用户名和密码。从HDFS导出目录时,如果需要创建快照,这里配置的用户需要HDFS系统的管理员权限。

    如果要创建MRS安全集群的数据连接,不能使用admin用户。因为admin用户是默认的管理页面用户,这个用户无法作为安全集群的认证用户来使用。您可以创建一个新的MRS用户,然后在创建MRS数据连接时,“用户名”“密码”填写为新建的MRS用户及其密码。
    说明:
    • 如果CDM集群为2.9.0版本及之后版本,且MRS集群为3.1.0及之后版本,则所创建的用户至少需具备Manager_viewer的角色权限才能在CDM创建连接;如果需要对MRS组件的库、表、列进行操作,还需要参考MRS文档添加对应组件的库、表、列操作权限。
    • 如果CDM集群为2.9.0之前的版本,或MRS集群为3.1.0之前的版本,则所创建的用户需要具备Manager_administrator或System_administrator权限,才能在CDM创建连接。
    • 仅具备Manager_tenant或Manager_auditor权限,无法创建连接。

    cdm

    密码

    访问MRS Manager的用户密码。

    -

    开启LDAP认证

    通过代理连接的时候,此项可配置。

    当MRS Hive对接外部LDAP开启了LDAP认证时,连接Hive时需要使用LDAP账号与密码进行认证,此时必须开启此参数,否则会连接失败。

    LDAP用户名

    “开启LDAP认证”参数选择为“是”时,此参数是必选项。

    填写为MRS Hive开启LDAP认证时配置的用户名。

    -

    LDAP密码

    “开启LDAP认证”参数选择为“是”时,此参数是必选项。

    填写为MRS Hive开启LDAP认证时配置的密码。

    -

    OBS支持

    需服务端支持OBS存储。在创建Hive表时,您可以指定将表存储在OBS中。

    访问标识(AK)

    “OBS支持”参数选择为“是”时,此参数是必选项。请注意,此处AK/SK对应的账号应具备OBS Buckets Viewer系统权限,否则会无法访问OBS并报“403 AccessDenied”错误。

    您需要先创建当前账号的访问密钥,并获得对应的AK和SK。

    1. 登录控制台,在用户名下拉列表中选择“我的凭证”。
    2. 进入“我的证”页面,选择访问密钥 > 新增访问密钥,如图5所示。
      图5 单击新增访问密钥
    3. 单击“确定”,根据浏览器提示,保存密钥文件。密钥文件会直接保存到浏览器默认的下载文件夹中。打开名称为“credentials.csv”的文件,即可查看访问密钥(Access Key Id和Secret Access Key)。
      说明:
      • 每个用户仅允许新增两个访问密钥。
      • 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控制台界面获取。请在生成后妥善保管。

    -

    密钥(SK)

    -

    运行模式

    “HIVE_3_X”版本支持该参数。支持以下模式:
    • EMBEDDED:连接实例与CDM运行在一起,该模式性能较好。
    • STANDALONE:连接实例运行在独立进程。如果CDM需要对接多个Hadoop数据源(MRS、Hadoop或CloudTable),并且既有KERBEROS认证模式又有SIMPLE认证模式,只能使用STANDALONE模式。
      说明:

      STANDALONE模式主要是用来解决版本冲突问题的运行模式。当同一种数据连接的源端或者目的端连接器的版本不一致时,存在jar包冲突的情况,这时需要将源端或目的端放在STANDALONE进程里,防止冲突导致迁移失败。

    EMBEDDED

    检查Hive JDBC连通性

    是否需要测试Hive JDBC连通。

    是否使用集群配置

    您可以通过使用集群配置,简化Hadoop连接参数配置。

    集群配置名

    仅当“是否使用集群配置”为“是”时,此参数有效。此参数用于选择用户已经创建好的集群配置。

    集群配置的创建方法请参见管理集群配置

    hive_01

  3. 单击“保存”回到连接管理界面。

创建迁移作业

  1. 选择表/文件迁移 > 新建作业,开始创建数据迁移任务,如图6所示。

    图6 创建MySQL到Hive的迁移任务

    “导入前清空数据”“是”,这样每次导入前,会将之前已经导入到Hive表的数据清空。

  2. 作业参数配置完成后,单击“下一步”,进入字段映射界面,如图7所示。

    映射MySQL表和Hive表字段,Hive表比MySQL表多三个字段y、ym、ymd,即是Hive的分区字段。由于没有源表字段直接对应,需要配置表达式从源表的StartDate字段抽取。

    图7 Hive字段映射

  3. 单击进入转换器列表界面,再选择新建转换器 > 表达式转换,如图8所示。

    y、ym、ymd字段的表达式分别配置如下:

    DateUtils.format(DateUtils.parseDate(row[2],"yyyy-MM-dd HH:mm:ss.SSS"),"yyyy")

    DateUtils.format(DateUtils.parseDate(row[2],"yyyy-MM-dd HH:mm:ss.SSS"),"yyyyMM")

    DateUtils.format(DateUtils.parseDate(row[2],"yyyy-MM-dd HH:mm:ss.SSS"),"yyyyMMdd")

    图8 配置表达式

    CDM的表达式已经预置常用字符串、日期、数值等类型的字段内容转换,详细请参见字段转换

  4. 单击“下一步”配置任务参数,一般情况下全部保持默认即可。

    该步骤用户可以配置如下可选功能:
    • 作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”
    • 作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。
    • 是否定时执行:如果需要配置作业定时自动执行可开启。这里保持默认值“否”
    • 抽取并发数:设置同时执行的抽取任务数,适当的抽取并发数可以提升迁移效率,配置原则请参见性能调优。这里保持默认值“1”
    • 是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要在CDM先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。
    图9 任务配置

  5. 单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。
  6. 作业执行成功后,单击作业操作列的“历史记录”,可查看该作业的历史执行记录、读取和写入的统计数据。

    在历史记录界面单击“日志”,可查看作业的日志信息。

相关文档