创建数据集成作业
本章节将介绍如何创建DataArts Studio数据集成作业。
本例中,需要创建如下三类集成作业:
- OBS到MySQL迁移作业:为方便演示,需要将OBS中的CSV格式的样例数据导入到MySQL数据库中。
- MySQL到OBS迁移作业:正式业务流程中,需要将MySQL中的原始样例数据需要导入OBS中,并标准化为点数据集和边数据集。
- MySQL到MRS Hive迁移作业:正式业务流程中,需要将MySQL中的原始样例数据需要导入MRS Hive中,并标准化为点数据集和边数据集。
创建集群
批量数据迁移集群提供数据上云和数据入湖的集成能力,全向导式配置和管理,支持单表、整库、增量、周期性数据集成。DataArts Studio基础包中已经包含一个数据集成的集群,如果无法满足业务需求,在购买DataArts Studio基础包实例后,您可以根据实际需求购买批量数据迁移增量包。
购买数据集成增量包的具体操作请参考购买批量数据迁移增量包章节。
新建数据集成连接
- 登录CDM管理控制台。单击左侧导航上的“集群管理”,进入集群管理界面。
或参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。在DataArts Studio控制台首页,选择对应工作空间的“数据集成”模块,进入CDM首页。
图1 集群列表
“创建来源”列仅通过DataArts Studio服务进入数据集成界面可以看到。
- 在左侧导航栏中单击“集群管理”进入“集群管理”页面。然后,在集群列表中找到所需要的集群,单击“作业管理”。
图2 集群管理
- 进入作业管理后,选择“连接管理”。
图3 连接管理
- 创建集成任务所需的OBS连接、云数据库MySQL连接和MRS Hive连接。
单击“新建连接”,进入相应页面后,选择连接器类型“对象存储服务(OBS)”,单击“下一步”,然后如下图所示配置连接参数,单击“保存”。图4 创建OBS连接
表1 OBS连接的参数 参数名
说明
取值样例
名称
连接的名称,根据连接的数据源类型,用户可自定义便于记忆、区分的连接名。
obs_link
OBS终端节点
终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同。您可以通过以下方式获取OBS桶的Endpoint信息:
OBS桶的Endpoint,可以进入OBS控制台概览页,单击桶名称后查看桶的基本信息获取。
说明:- CDM集群和OBS桶不在同一个Region时,不支持跨Region访问OBS桶。
- 作业运行中禁止修改密码或者更换用户。在作业运行过程中修改密码或者更换用户,密码不会立即生效且作业会运行失败。
-
端口
数据传输协议端口,https是443,http是80。
443
OBS桶类型
用户下拉选择即可,一般选择为“对象存储”。
对象存储
访问标识(AK)
AK和SK分别为登录OBS服务器的访问标识与密钥。
您需要先创建当前账号的访问密钥,并获得对应的AK和SK。
您可以通过如下方式获取访问密钥。- 登录控制台,在用户名下拉列表中选择“我的凭证”。
- 进入“我的凭证”页面,选择 ,如图5所示。
- 单击“确定”,根据浏览器提示,保存密钥文件。密钥文件会直接保存到浏览器默认的下载文件夹中。打开名称为“credentials.csv”的文件,即可查看访问密钥(Access Key Id和Secret Access Key)。
说明:
- 每个用户仅允许新增两个访问密钥。
- 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控制台界面获取。请在生成后妥善保管。
-
密钥(SK)
-
在“连接管理”页面,再次单击“新建连接”,进入相应页面后,选择连接器类型为“云数据库 MySQL”,单击“下一步”,然后如下图所示配置连接参数,单击“保存”。
表2 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,然后进行上传。
-
在“连接管理”页面,再次单击“新建连接”,进入相应页面后,选择连接器类型为“MRS Hive”,单击“下一步”,然后如下图所示配置连接参数,单击“保存”。图6 创建MRS Hive连接
表3 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。
- 登录控制台,在用户名下拉列表中选择“我的凭证”。
- 进入“我的凭证”页面,选择 ,如图7所示。
- 单击“确定”,根据浏览器提示,保存密钥文件。密钥文件会直接保存到浏览器默认的下载文件夹中。打开名称为“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
新建OBS到MySQL迁移作业
为方便演示,需要将OBS中的CSV格式的样例数据导入到MySQL数据库中。
- 在DataArts Studio数据集成控制台,进入“集群管理”页面,在集群列表中找到所需要的集群,单击“作业管理”。
- 在“作业管理”页面,单击“表/文件迁移”,再单击“新建作业”。
图8 表/文件迁移
- 按照如下步骤将数据源准备中的4张原始数据表,依次从OBS迁移到MySQL数据库中。
- 配置作业vertex_user_obs2rds。
源端的“源目录或文件”选择在数据源准备中上传到OBS的vertex_user.csv,由于表中有中文字符还需额外配置高级属性“编码类型”为“GBK”。目的端的“表名”选择在创建MySQL原始数据表中创建的vertex_user表。然后单击“下一步”。图9 vertex_user_obs2rds作业配置
- 在字段映射中,检查字段映射顺序是否正确。如果字段映射顺序正确,单击下一步即可。
图10 vertex_user_obs2rds字段映射
- 任务配置无需修改,直接保存并运行即可。
图11 任务配置
- 配置作业vertex_user_obs2rds。
- 等待作业运行完成后,如果作业成功,则vertex_user表已成功迁移到MySQL数据库中。
图12 vertex_user_obs2rds作业运行成功
- 参考2到4,完成vertex_movie_obs2rds、edge_friends_obs2rds和edge_rate_obs2rds作业的创建,将4张原始表从OBS迁移到MySQL中。
新建MySQL到OBS迁移作业
正式业务流程中,需要将MySQL中的原始样例数据需要导入OBS中,并标准化为点数据集和边数据集。
- 在DataArts Studio数据集成控制台,进入“集群管理”页面,在集群列表中找到所需要的集群,单击“作业管理”。
- 在“作业管理”页面,单击“表/文件迁移”,再单击“新建作业”。
图13 表/文件迁移
- 按照如下步骤将MySQL中的4张原始数据表,依次迁移到OBS桶中。
- 配置作业vertex_user_rds2obs。
源端的“表名”选择在新建OBS到MySQL迁移作业中迁移到MySQL的vertex_user。目的端的“写入目录”注意选择非原始数据所在目录以避免文件覆盖,“文件格式”按照GES图导入格式要求设置为“CSV格式”,由于表中有中文字符还需额外配置高级属性“编码类型”为“GBK”。
注意:目的端高级属性需要额外配置“自定义文件名”,取值为“${tableName}”。如果不配置,则迁移到OBS的CSV文件名会带上时间戳等额外字段,导致每次运行迁移作业获取的文件名不一致,无法每次迁移后自动导入GES图数据。
其他高级属性无需配置,单击“下一步”。图14 vertex_user_rds2obs作业基础配置
图15 vertex_user_rds2obs作业高级配置
- 在字段映射中,根据GES图数据的要求,此处需要新增字段label,作为图文件的标签。
- vertex_user:label取值为user,并将此字段调整至第2列。
- vertex_movie:label取值为movie,并将此字段调整至第2列。
- edge_friends:label取值为friends,并将此字段调整至第3列。
- edge_rate:label取值为rate,并将此字段调整至第3列。
将原始数据结构根据GES图导入的要求标准化。则点表vertex_user和vertex_movie需要在第二列补充标签label,边表edge_rate和edge_friends需要在第三列补充标签label。
点数据集和边数据集应符合GES图数据格式要求。图数据格式要求简要介绍如下,详情可参见一般图数据格式。- 点数据集罗列了各个点的数据信息。一行为一个点的数据。格式如下所示,id是点数据的唯一标识。
id,label,property 1,property 2,property 3,…
- 边数据集罗列了各个边的数据信息,一行为一条边的数据。GES中图规格是以边的数量进行定义的,如一百万边。格式如下所示,id 1、id 2是一条边的两个端点的id。
id 1, id 2, label, property 1, property 2, …
图16 vertex_user_rds2obs新增字段映射
- 调整字段顺序,点数据集将label调整至第2列,边数据集将label调整至第3列。调整完成后如图18所示,然后单击下一步。
图17 vertex_user_rds2obs调整字段顺序
- 任务配置无需修改,直接保存并运行即可。
图19 任务配置
- 配置作业vertex_user_rds2obs。
- 等待作业运行完成后,如果作业成功,则vertex_user.csv表已成功写入到OBS桶中。
图20 vertex_user_rds2obs作业运行成功
- 参考2到4,完成vertex_movie_rds2obs、edge_friends_rds2obs和edge_rate_rds2obs作业的创建,将4张原始表从MySQL标准化到OBS桶中。
新建MySQL到MRS Hive迁移作业
正式业务流程中,需要将MySQL中的原始样例数据需要导入MRS Hive中,并标准化为点数据集和边数据集。
- 在DataArts Studio数据集成控制台,进入“集群管理”页面,在集群列表中找到所需要的集群,单击“作业管理”。
- 在“作业管理”页面,单击“表/文件迁移”,再单击“新建作业”。
图21 表/文件迁移
- 按照如下步骤将MySQL中的4张原始数据表,依次迁移到MRS Hive中。
- 配置作业vertex_user_rds2hive。
源端的“表名”选择在新建OBS到MySQL迁移作业中迁移到MySQL的vertex_user,目的端的“表名”选择在创建MRS Hive标准数据表中创建的vertex_user表。其他参数配置如图所示,无需配置高级属性,然后单击“下一步”。
图22 vertex_user_rds2hive作业基础配置
- 在字段映射中,根据GES图数据的要求,此处需要新增字段label,作为图文件的标签。
- vertex_user:label取值为user,并将此字段调整至第2列。
- vertex_movie:label取值为movie,并将此字段调整至第2列。
- edge_friends:label取值为friends,并将此字段调整至第3列。
- edge_rate:label取值为rate,并将此字段调整至第3列。
将原始数据结构根据GES图导入的要求标准化。则点表vertex_user和vertex_movie需要在第二列补充标签label,边表edge_rate和edge_friends需要在第三列补充标签label。
点数据集和边数据集应符合GES图数据格式要求。图数据格式要求简要介绍如下,详情可参见一般图数据格式。- 点数据集罗列了各个点的数据信息。一行为一个点的数据。格式如下所示,id是点数据的唯一标识。
id,label,property 1,property 2,property 3,…
- 边数据集罗列了各个边的数据信息,一行为一条边的数据。GES中图规格是以边的数量进行定义的,如一百万边。格式如下所示,id 1、id 2是一条边的两个端点的id。
id 1, id 2, label, property 1, property 2, …
图23 vertex_user_rds2hive新增字段映射
- 调整字段顺序,点文件中将label调整至第2列,边文件将label调整至第3列。调整完成后如图25所示,然后单击下一步。
图24 vertex_user_rds2hive调整字段顺序
- 任务配置无需修改,直接保存并运行即可。
图26 任务配置
- 配置作业vertex_user_rds2hive。
- 等待作业运行完成后,如果作业成功,则vertex_user表已成功迁移到MRS Hive中。
图27 vertex_user_rds2hive作业运行成功
- 参考2到4,完成vertex_movie_rds2hive、edge_friends_rds2hive和edge_rate_rds2hive作业的创建,将4张原始表从MySQL标准化到MRS Hive中。