更新时间:2024-04-29 GMT+08:00

创建数据集成作业

本章节将介绍如何创建DataArts Studio数据集成作业。

本例中,需要创建如下三类集成作业:

  1. OBS到MySQL迁移作业:为方便演示,需要将OBS中的CSV格式的样例数据导入到MySQL数据库中。
  2. MySQL到OBS迁移作业:正式业务流程中,需要将MySQL中的原始样例数据需要导入OBS中,并标准化为点数据集和边数据集。
  3. MySQL到MRS Hive迁移作业:正式业务流程中,需要将MySQL中的原始样例数据需要导入MRS Hive中,并标准化为点数据集和边数据集。

创建集群

批量数据迁移集群提供数据上云和数据入湖的集成能力,全向导式配置和管理,支持单表、整库、增量、周期性数据集成。DataArts Studio基础包中已经包含一个数据集成的集群,如果无法满足业务需求,在购买DataArts Studio基础包实例后,您可以根据实际需求购买批量数据迁移增量包。

购买数据集成增量包的具体操作请参考购买DataArts Studio增量包章节。

新建数据集成连接

  1. 登录DataArts Studio控制台。选择实例,单击“进入控制台”,选择对应工作空间的“数据集成”模块,进入数据集成页面。

    图1 选择数据集成

  2. 在左侧导航栏中单击“集群管理”进入“集群管理”页面。然后,在集群列表中找到所需要的集群,单击“作业管理”

    图2 集群管理

  3. 进入作业管理后,选择“连接管理”

    图3 连接管理

  4. 创建集成任务所需的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。

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

    -

    密钥(SK)

    -

    “连接管理”页面,再次单击“新建连接”,进入相应页面后,选择连接器类型为“云数据库 MySQL”,单击“下一步”,然后如下图所示配置连接参数,单击“保存”
    图6 创建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”,单击“下一步”,然后如下图所示配置连接参数,单击“保存”
    图7 创建MRS Hive连接
    表3 MRS Hive连接参数

    参数名

    说明

    取值样例

    名称

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

    hivelink

    Manager IP

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

    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. 进入“我的证”页面,选择访问密钥 > 新增访问密钥,如图8所示。
      图8 单击新增访问密钥
    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

新建OBS到MySQL迁移作业

为方便演示,需要将OBS中的CSV格式的样例数据导入到MySQL数据库中。

  1. DataArts Studio数据集成控制台,进入“集群管理”页面,在集群列表中找到所需要的集群,单击“作业管理”
  2. “作业管理”页面,单击“表/文件迁移”,再单击“新建作业”

    图9 表/文件迁移

  3. 按照如下步骤将数据源准备中的4张原始数据表,依次从OBS迁移到MySQL数据库中。

    1. 配置作业vertex_user_obs2rds。
      源端的“源目录或文件”选择在数据源准备中上传到OBS的vertex_user.csv,由于表中有中文字符还需额外配置高级属性“编码类型”为“GBK”。目的端的“表名”选择在创建MySQL原始数据表中创建的vertex_user表。然后单击“下一步”
      图10 vertex_user_obs2rds作业配置

    2. 在字段映射中,检查字段映射顺序是否正确。如果字段映射顺序正确,单击下一步即可。
      图11 vertex_user_obs2rds字段映射

    3. 任务配置无需修改,直接保存并运行即可。
      图12 任务配置

  4. 等待作业运行完成后,如果作业成功,则vertex_user表已成功迁移到MySQL数据库中。

    图13 vertex_user_obs2rds作业运行成功

  5. 参考24,完成vertex_movie_obs2rds、edge_friends_obs2rds和edge_rate_obs2rds作业的创建,将4张原始表从OBS迁移到MySQL中。

新建MySQL到OBS迁移作业

正式业务流程中,需要将MySQL中的原始样例数据需要导入OBS中,并标准化为点数据集和边数据集。

  1. DataArts Studio数据集成控制台,进入“集群管理”页面,在集群列表中找到所需要的集群,单击“作业管理”
  2. “作业管理”页面,单击“表/文件迁移”,再单击“新建作业”

    图14 表/文件迁移

  3. 按照如下步骤将MySQL中的4张原始数据表,依次迁移到OBS桶中。

    1. 配置作业vertex_user_rds2obs。

      源端的“表名”选择在新建OBS到MySQL迁移作业中迁移到MySQL的vertex_user。目的端的“写入目录”注意选择非原始数据所在目录以避免文件覆盖,“文件格式”按照GES图导入格式要求设置为“CSV格式”,由于表中有中文字符还需额外配置高级属性“编码类型”为“GBK”。

      注意:目的端高级属性需要额外配置“自定义文件名”,取值为“${tableName}”。如果不配置,则迁移到OBS的CSV文件名会带上时间戳等额外字段,导致每次运行迁移作业获取的文件名不一致,无法每次迁移后自动导入GES图数据。

      其他高级属性无需配置,单击“下一步”
      图15 vertex_user_rds2obs作业基础配置

      图16 vertex_user_rds2obs作业高级配置

    2. 在字段映射中,根据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, …
      图17 vertex_user_rds2obs新增字段映射

    3. 调整字段顺序,点数据集将label调整至第2列,边数据集将label调整至第3列。调整完成后如图19所示,然后单击下一步。
      图18 vertex_user_rds2obs调整字段顺序

      图19 vertex_user_rds2obs字段映射

    4. 任务配置无需修改,直接保存并运行即可。
      图20 任务配置

  4. 等待作业运行完成后,如果作业成功,则vertex_user.csv表已成功写入到OBS桶中。

    图21 vertex_user_rds2obs作业运行成功

  5. 参考24,完成vertex_movie_rds2obs、edge_friends_rds2obs和edge_rate_rds2obs作业的创建,将4张原始表从MySQL标准化到OBS桶中。

新建MySQL到MRS Hive迁移作业

正式业务流程中,需要将MySQL中的原始样例数据需要导入MRS Hive中,并标准化为点数据集和边数据集。

  1. DataArts Studio数据集成控制台,进入“集群管理”页面,在集群列表中找到所需要的集群,单击“作业管理”
  2. “作业管理”页面,单击“表/文件迁移”,再单击“新建作业”

    图22 表/文件迁移

  3. 按照如下步骤将MySQL中的4张原始数据表,依次迁移到MRS Hive中。

    1. 配置作业vertex_user_rds2hive。

      源端的“表名”选择在新建OBS到MySQL迁移作业中迁移到MySQL的vertex_user,目的端的“表名”选择在创建MRS Hive标准数据表中创建的vertex_user表。其他参数配置如图所示,无需配置高级属性,然后单击“下一步”

      图23 vertex_user_rds2hive作业基础配置

    2. 在字段映射中,根据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, …
      图24 vertex_user_rds2hive新增字段映射

    3. 调整字段顺序,点文件中将label调整至第2列,边文件将label调整至第3列。调整完成后如图26所示,然后单击下一步。
      图25 vertex_user_rds2hive调整字段顺序

      图26 vertex_user_rds2hive字段映射

    4. 任务配置无需修改,直接保存并运行即可。
      图27 任务配置

  4. 等待作业运行完成后,如果作业成功,则vertex_user表已成功迁移到MRS Hive中。

    图28 vertex_user_rds2hive作业运行成功

  5. 参考24,完成vertex_movie_rds2hive、edge_friends_rds2hive和edge_rate_rds2hive作业的创建,将4张原始表从MySQL标准化到MRS Hive中。