通过CDM同步数据到MRS Hive

1.3. 购买MRS集群

进入【实验操作桌面】,打开浏览器进入华为云控制台,鼠标移动到云桌面浏览器页面中左侧菜单栏,点击“服务列表”->“大数据”->“MapReduce服务”进入MRS服务控制台,如下图所示:

1.4. 购买CDM云数据迁移服务

1.5. CDM绑定弹性公网IP

 

RDS源端数据准备和MRS目标端数据库表说明

本次实操课程中,使用RDS模拟源端数据库,用于存储南向子系统数据,所以需要先在RDS中创建数据库stu_ipass_info(学生一卡通信息)以及card_code_info(卡号信息)、stu_swiping_info(学生刷卡数据)、stu_track_info(学生行为轨迹信息)三张表和数据,并使用SQL语句分别给三张表添加时间戳字段。

2.1. 创建源端数据库

本节实操中,将在RDS实例“rds-practice-test”中创建源端数据库“stu_ipass_info”,作为保存学生一卡通信息的数据库。鼠标移动到云桌面浏览器页面中上方菜单栏,点击“服务列表”->“数据库”->“云数据库RDS”

测试连接成功后点击“登录”->“确认”,进入数据管理服务控制台。点击“新建数据库”,在弹出的窗口中配置参数如下:① 数据库名称:stu_ipass_info(学生一卡通信息),② 字符集:默认

2.2. 创建源端表

本节实操中,将在RDS源端数据库中创建3张表:card_code_info(卡号信息)、stu_swiping_info(学生刷卡数据)、stu_track_info(学生行为轨迹信息)。点击步骤2.1创建的数据库名称“stu_ipass_info”进入数据库管理页面,点击“SQL窗口”

CREATE TABLE card_code_info (
card_code_info.student_no VARCHAR(32),
card_code_info.student_id int(32) not null  PRIMARY key,
card_code_info.name VARCHAR(32),
card_code_info.idcard VARCHAR(32),
card_code_info.college_name VARCHAR(32),
card_code_info.college_code VARCHAR(32),
card_code_info.college_sort VARCHAR(32),
card_code_info.major_name VARCHAR(32),
card_code_info.major_code VARCHAR(32)
)DEFAULT CHARSET =utf8;

CREATE TABLE stu_swiping_info (
stu_swiping_info.id int(32) not null  PRIMARY key,
stu_swiping_info.code VARCHAR(32),
stu_swiping_info.name VARCHAR(32),
stu_swiping_info.time Timestamp(6),
stu_swiping_info.area VARCHAR(32),
stu_swiping_info.source VARCHAR(32)
)DEFAULT CHARSET =utf8;

CREATE TABLE stu_track_info (
stu_track_info.id int(32) not null  PRIMARY key,
stu_track_info.xgh VARCHAR(32),
stu_track_info.name VARCHAR(32),
stu_track_info.start_time Timestamp(6),
stu_track_info.building_name VARCHAR(32),
stu_track_info.longitude decimal(32),
stu_track_info.latitude decimal(32),
stu_track_info.floor VARCHAR(32),
stu_track_info.room VARCHAR(32),
stu_track_info.building_type VARCHAR(32),
stu_track_info.source VARCHAR(32)
)DEFAULT CHARSET =utf8;

2.3. 为源端表添加时间戳本节实操中,为三张源端表添加时间戳字段“update_time”,作为后续创建和运行CDM增量数据迁移作业时的增量参考字段。点击“库管理”界面上方的“SQL查询”选项,回到SQL执行界面,输入以下SQL语句

alter table card_code_info add update_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

alter table stu_swiping_info add update_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

alter table stu_track_info add update_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

2.4. 为源端表插入源数据本节实操中,为源端RDS数据库的三张表插入数据,作为后续创建CDM全量数据迁移作业的源数据。点击“库管理”界面上方的“SQL查询”选项,切换回SQL执行界面,输入以下SQL语句:

insert into card_code_info(card_code_info.student_no,card_code_info.student_id,card_code_info.name,card_code_info.idcard,card_code_info.college_name,card_code_info.college_code,card_code_info.college_sort,card_code_info.major_name,card_code_info.major_code) values
('58125',210905,'dongqi','100014','SOM','003','123','MBA','102'),
('58126',210904,'chenliu','100013','SOM','003','123','MBA','102'),
('58127',210901,'zhangsan','100010','SOM','003','123','MBA','102'),
('58128',210902,'lisi','100011','SOM','003','123','MBA','102'),
('58129',210903,'wangwu','100012','SOM','003','123','MBA','102');

insert into stu_swiping_info(stu_swiping_info.id,stu_swiping_info.code,stu_swiping_info.name,stu_swiping_info.time,stu_swiping_info.area,stu_swiping_info.source) values 
(100001,'3002','zhangsan','2021-05-10 10:06:28','SHOP','10644'),
(100002,'3004','wangwu','2021-05-10 10:06:28','SHOP','10644'),
(100003,'3009','zhaoliu','2021-05-10 10:06:28','SHOP','10644'),
(100005,'3003','likai','2021-05-10 10:06:28','SHOP','10644'),
(100007,'3012','lisi','2021-05-10 10:06:28','SHOP','10644');

insert into stu_track_info (stu_track_info.id,stu_track_info.xgh,stu_track_info.name,stu_track_info.start_time,stu_track_info.building_name,stu_track_info.longitude,stu_track_info.latitude,stu_track_info.floor,stu_track_info.room,stu_track_info.building_type,stu_track_info.source) values 
(100001,'3002','zhangsan','2021-05-10 10:06:28','SHOP',44,21,'2','202','3','10046'),
(100034,'3010','wangwu','2021-05-10 10:06:28','SHOP',44,21,'2','202','3','10046'),
(100043,'3045','zhaoliu','2021-05-10 10:06:28','SHOP',44,21,'2','202','3','10046'),
(100087,'3032','lisi','2021-05-10 10:06:28','SHOP',44,21,'2','202','3','10046'),
(1000877,'3087','zhangtao','2021-05-10 10:06:28','SHOP',44,21,'2','202','3','10046');

 

 

3. 创建和运行CDM全量数据迁移作业

3.1. 上传驱动为保证云数据迁移服务的连接顺利创建,需进行相关设备的驱动安装。进入华为云控制台,鼠标移动到云桌面浏览器页面中左侧菜单栏,点击“服务列表”->“迁移”->“云数据迁移 CDM”进入云数据迁移服务控制台

进入页面后,点击步骤1.4创建好的云数据迁移CDM集群后的“作业管理”

进入“连接管理”页面后,点击“驱动管理”按钮进入“驱动管理”详情

3.2. 创建源端连接驱动安装成功后点击“返回”按钮回到“连接管理”页面,点击“新建连接”按钮,进入“选择连接器类型”页面,选择“关系型数据库”中的“云数据库MySQL”,然后点击“下一步”

进入“详细配置”后,配置参数如下:

① 名称:自定义,如:“source_mysql_practice_test
② 数据库服务器:点击“选择”->预置的云数据库RDS
③ 端口:3006,
④ 数据库名称:stu_ipass_info,
⑤ 用户名:root,
⑥ 密码:z6$*d2lX_W,
⑦ 使用本地API:否,
⑧ 使用Agent:否

确认配置无误后点击“测试”按钮,连通成功会弹出“测试成功”的窗口。测试成功后点击“保存”,在连接管理列表中可以看到创建的源端数据源连接,如下图所示:

 

3.3. 创建目标端连接

继续在“连接管理”页面点击“新建连接”按钮,进入“选择连接器类型”页面,选择“Hadoop”中的“MRS Hive”,然后点击“下一步”,如下图所示:

进入“详细配置”后,配置参数如下:

① 名称:自定义,如:“target_mrs_practice_test”
② Manager IP:点击“选择”->步骤1.3购买的MRS集群
③ 认证类型:SIMPLE
④ Hive版本:HIVE_3_X
⑤ 用户名:admin
⑥ 密码:@nAbojRy?t
⑦ OBS支持:否
⑧ 运行模式:EMBEDDED
⑨ 是否使用集群配置:否,

确认配置无误后点击“测试”按钮,连通成功会弹出“测试成功”的窗口。测试成功后点击“保存”,在连接管理列表中可以看到创建的目标端连接,如下图所示

3.4. 创建CDM全量迁移作业在当前“连接管理”界面选择“表/文件迁移”,点击“新建作业”,如下图所示:

进入创建作业的“基本信息配置”页面,参数如下:
(1) 作业配置:
① 作业名称:自定义,如:“mysql_to_mrs_card_code_info_ini”
(2) 源端作业配置:
① 源连接名称:在下拉列表中选择步骤3.2创建的连接名称
② 使用SQL语句:否
③ 模式或表空间:stu_ipass_info
④ 表名:card_code_info,
(3) 目的端作业配置:
① 目的连接名称:在下拉列表中选择步骤3.3创建的连接名称
② 数据库名称:default,
③ 表名:可使用源端作业表名,
④ 自动创表:选择“不存在时创建”,
⑤ 导入前是否清空数据:是

重复以上步骤,分别为另外两张表创建迁移作业。作业名称分别为“mysql_to_mrs_stu_swiping_info_ini”、“mysql_to_mrs_stu_track_info_ini”和对应的表名关系图如下所示:

 

进入MRS控制台界面后,点击步骤1.3创建的MRS集群实例名称进入MRS详情界面,选择“节点管理”,如下图所示:

点击上图标注的Master节点组下拉按钮,在展开的Master节点中任意选择一个节点,如下图所示:

点击节点名称进入该节点所在的弹性云服务器详情页面,点击页面右上方的“远程登录”按钮,登录弹性云服务器,如下图所示:

在弹出的登录Linux弹性云服务器页面,点击下图标注的“立即登录”按钮(使用VNC方式登录)

复制以下命令到弹性云服务器终端界面:

beeline

按键盘回车键执行该命令,执行成功会进入Hive组件

在Hive组件环境中执行以下sql语句,查询数据库信息:

show databases;

继续在Hive组件环境中执行以下sql语句,查看数据库“default”中的表信息:

show tables from default;

继续在Hive组件环境中执行查询表数据的SQL命令:

select * from default.card_code_info;

select * from default.stu_swiping_info;

select * from default.stu_track_info;

结果(以查询表card_code_info为例):说明:用户可依次执行上述SQL命令并与云数据库RDS中对应数据表数据进行比对。

 

4. 创建和运行CDM增量数据迁移作业

4.1. 创建CDM增量数据迁移作业本节实操中,将创建3个CDM作业用于3个源端表的增量数据迁移。进入华为云控制台,鼠标移动到云桌面浏览器页面中左侧菜单栏,点击“服务列表”->“迁移”->“云数据迁移 CDM”进入云数据迁移服务控制台,如下图所示:在云数据迁移服务控制台点击云数据迁移CDM集群后的“作业管理”->“表/文件迁移”->“新建作业”,进入创建作业的“基本信息配置”页面,参数如下:

1) 作业配置:① 作业名称:
自定义,如:“mysql_to_mrs_card_code_info”,
(2) 源端作业配置:
① 源连接名称:在下拉列表中选择步骤3.2创建的连接名称,
② 使用SQL语句:否,
③ 模式或表空间:stu_ipass_info,
④ 表名:card_code_info,
高级属性配置:⑤ Where子句:
update_time>'${dateformat(yyyy-MM-dd HH:mm:ss, -10, MINUTE)}'
⑥ 抽取分区字段:默认,
⑦ 分区字段是否允许空值:否,
⑧ 拆分作业:否,

3) 目的端作业配置:

① 目的连接名称:在下拉列表中选择步骤3.3创建的连接名称,

② 数据库名称:default,

③ 表名:可使用源端作业表名,

④ 自动创表:选择“不自动创建”

⑤ 导入前是否清空数据:否,

点击“下一步”进入“任务配置”,参数如下:

① 作业失败重试:不重试,

② 作业分组:DEFAULT,

③ 是否定时执行:是,

④ 重复周期:30分钟,

⑤ 其他:默认,

重复以上步骤,分别为另外两张表创建迁移作业。作业名称分别为“mysql_to_mrs_stu_swiping_info”“mysql_to_mrs_stu_track_info”

进入云数据库实例管理页面后,在实例列表中可以看到已经预置成功的命名为“rds-practice-test”云数据库RDS实例,点击“登录”的配置参数如下:

点击步骤2.1创建的数据库名称“stu_ipass_info”进入数据库管理页面,点击“SQL窗口”,如下图所示:

在弹出的SQL执行页面中,输入以下SQL语句:

insert into card_code_info(card_code_info.student_no,card_code_info.student_id,card_code_info.name,card_code_info.idcard,card_code_info.college_name,card_code_info.college_code,card_code_info.college_sort,card_code_info.major_name,card_code_info.major_code) values ('58126',210906,'zhaozhenyu','100015',' SOM ','003','123','MBA','102');
insert into stu_swiping_info(stu_swiping_info.id,stu_swiping_info.code,stu_swiping_info.name,stu_swiping_info.time,stu_swiping_info.area,stu_swiping_info.source) values (100006,'3004','zhaozhenyu','2021-05-10 10:06:28',' SHOP ','10644');
insert into stu_track_info (stu_track_info.id,stu_track_info.xgh,stu_track_info.name,stu_track_info.start_time,stu_track_info.building_name,stu_track_info.longitude,stu_track_info.latitude,stu_track_info.floor,stu_track_info.room,stu_track_info.building_type,stu_track_info.source) values (1000878,'3088','zhaozhenyu','2021-05-10 10:06:28',' SHOP ',44,21,'2','202','3','10046');

 

在弹出的登录Linux弹性云服务器页面,点击下图标注的“立即登录”按钮(使用VNC方式登录)

复制以下命令到弹性云服务器终端界面:

beeline

继续在Hive组件环境中执行查询表数据的SQL命令:

select * from default.card_code_info;

select * from default.stu_swiping_info;

select * from default.stu_track_info;

显示有:

| 1000878 | 3088 | zhaozhenyu | 2021-05-10 10:06:28.0 | SHOP

同步成功