通过CDM算子批量创建分表迁移作业
适用场景
业务系统中,数据源往往会采用分表的形式,以减少单表大小,支持复杂的业务应用场景。
在这种情况下,通过CDM进行数据集成时,需要针对每张表创建一个数据迁移作业。您可以参考本教程,通过数据开发模块的For Each算子和CDM节点算子,配合作业参数,实现批量创建分表迁移作业。
本教程中,源端MySQL数据库中存在三张分表,分别是mail01、mail02和mail03,且表结构一致,数据内容不同。目的端为MRS HIVE服务。
操作前提
- 已创建CDM集群。
- 已经开通了MRS HIVE服务。
- 已经在MRS HIVE服务中创建了数据库和表。
创建连接
- 登录DGC控制台,找到所需要的DGC实例,单击实例卡片上的“进入控制台”,进入概览页面。
- 找到所需要的工作空间,单击工作空间的“数据集成”,系统跳转至数据集成页面。
- 单击CDM集群后的“作业管理”,进入作业管理界面。
- 单击“连接管理->驱动管理”,参考管理驱动页面,上传MySQL数据库驱动。
- 选择“MySQL”,然后单击“下一步”配置连接参数,参数说明如表1所示。配置完成后,单击“保存”回到连接管理界面。 ,新建MySQL连接。连接器类型选择图1 配置MySQL连接
- 再次选择“MRS Hive”,然后单击“下一步”配置连接参数,参数说明如表2所示。配置完成后,单击“保存”回到连接管理界面。 ,新建MRS Hive连接。连接器类型选择图2 配置MRS Hive连接
表2 MRS Hive连接参数 参数名
说明
取值样例
名称
连接的名称,根据连接的数据源类型,用户可自定义便于记忆、区分的连接名。
hive
Manager IP
MRS Manager的浮动IP地址,可以单击输入框后的“选择”来选定已创建的MRS集群,CDM会自动填充下面的鉴权参数。
127.0.0.1
认证类型
访问MRS的认证类型:- SIMPLE:非安全模式选择Simple鉴权。
- KERBEROS:安全模式选择Kerberos鉴权。
KERBEROS
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创建连接;如果需要对应组件的进行库、表、数据的操作,还需要添加对应组件的用户组权限。
- 如果CDM集群为2.9.0之前的版本,或MRS集群为3.1.0之前的版本,则所创建的用户需要具备Manager_administrator、Manager_tenant或System_administrator权限,才能在CDM创建连接。
cdm
密码
访问MRS Manager的用户密码。
-
OBS支持
需服务端支持OBS存储。在创建Hive表时,您可以指定将表存储在OBS中。
否
运行模式
EMBEDDED
是否使用集群配置
您可以通过使用集群配置,简化Hadoop连接参数配置。
否
创建样例作业
创建数据开发作业
- 单击工作空间的“数据开发”,进入DGC数据开发模块。
- 创建子作业“分表作业”,选择CDM节点,节点属性中作业类型配置为“创建新作业”,并将步骤2中复制的作业JSON粘贴到“CDM作业消息体”中。
- 编辑“CDM作业消息体”。
- 添加作业参数num,用于作业JSON中调用。如下图所示:
添加完成后点击“保存并提交版本”,以保存子作业。
- 创建主作业“集成管理”,选择For Each节点,每次循环调用分表作业,分别将参数001、002、003传递给子作业,生成不同的分表抽取任务。关键配置如下:
- 子作业:选择“分表作业”
- 数据集:[['001'],['002'],['003']]
- 作业运行参数:@@#{Loop.current[0]}@@
此处作业运行参数的EL表达式需要添加@@。如果不加@@包围,数据集001会被识别为1,导致源表名不存在的问题。
如下图所示:
配置完成后点击“保存并提交版本”,以保存主作业。
- 创建主作业和子作业完成后,通过测试运行主作业“集成管理”,检查数据集成作业创建情况。运行成功后,创建并运行CDM子作业成功。
