为了满足不同业务场景数据集成的诉求,Dataphin支持用户自定义当前系统不支持的RDBMS数据库(关系型数据库)类型的组件。您只需要准备关系型数据库的驱动,即可自定义RDBMS数据库类型的组件。本教程以MySQL为例,为您介绍如何自定义RDBMS数据库类型的组件。

前提条件

  • 已开通RDS MySQL实例,且RDS MySQL实例的网络类型为专有网络。如何开通RDS MySQL实例,请参见创建RDS MySQL实例
  • 已创建RDS MySQL实例的数据库和账号,创建过程中需要您记录数据库名称、用户名和密码。如何创建数据库和账号,请参见创建数据库和账号

背景信息

RDBMS数据库即关系型数据库,包括MySQL、Oracle、SQL Server、PostgreSQL、Vertica、DRDS、DB2、OceanBase、PolarDB、SAP HANA和TeraData。本教程以MySQL为例,带您体验自定义及应用RDBMS数据库类型的组件。

操作流程

自定义并应用MySQL数据库组件的流程,如下图所示。fagag
步骤 描述
步骤一:下载自定义MySQL数据库组件的驱动 获取自定义MySQL数据库组件驱动。
步骤二:连通RDS MySQL实例与Dataphin间的网络 在您开始自定义并应用RDBMS数据库组件前,首先需要连通RDS MySQL实例和Dataphin间的网络。
步骤三:创建数据同步的源表和目标表 登录至RDS MySQL实例,创建本教程中用于数据同步的源表和目标表。
步骤四:创建自定义组件 自定义组件的类型为test_rdbms_mysql。完成定义后,即可在组件库的开发模块下查询到自定义的组件。
步骤五:创建数据源实例 基于自定义的组件类型(test_rdbms_mysql),创建TEST_RDBMS_MYSQL类型的数据源实例。完成创建数据源实例后,即可将RDS MySQL实例的业务数据引入至Dataphin实例。
步骤六:创建离线管道任务 基于自定义的组件类型(test_rdbms_mysql)和数据源实例(test_rdbms_mysql),创建离线管道任务。完成离线管道任务的创建后,即可运行离线管道任务,以实现数据的集成(同步数据)。
步骤七:生产环境中运行离线管道任务 在生产环境运行离线管道任务,保障生产环境业务数据的正常产出。

步骤一:下载自定义MySQL数据库组件的驱动

请下载MySQL数据库的驱动

步骤二:连通RDS MySQL实例与Dataphin间的网络

  1. 申请RDS MySQL实例的外网地址。如何申请外网地址,请参见申请或释放外网地址
  2. 数据库连接页面,获取RDS MySQL实例的外网地址和端口。
    faga
  3. 添加RDS MySQL实例的外网地址和端口至Dataphin项目空间的沙箱白名单。如何添加沙箱白名单,请参见添加沙箱白名单
  4. 添加0.0.0.0/0至RDS MySQL实例的白名单。如何添加白名单,请参见设置IP白名单
    注意 完成数据同步后,请立即删除0.0.0.0/0

步骤三:创建数据同步的源表和目标表

使用命令行方式连接RDS MySQL实例,请参见方法三:使用命令行连接实例。创建同步数据的源数据表和目标数据表:
  1. 创建源数据表的代码示例如下。
    create table xin_test_scr2
    (
    id string,
    name string
    );
    insert into xin_test_scr2 values('1001','huayu1'),('1002','huayuyu2'),('1003','huayuyu3'),('1004','huayuyu4'),('1005','huayuyu5'),('1006','huayuyu6'),('1007','huayuyu7'),('1008','huayuyu8'),('1009','huayuyu9'),('1010','huayuyu10'),('1011','huayuyu11'),('1012','huayuyu12'),('1013','huayuyu13'),('1014','huayuyu14'),('1015','huayuyu15'),('1016','huayuyu16'),('1017','huayuyu17'),('1018','huayuyu18'),('1019','huayuyu19'),('1021','huayuyu21'),('10022','huayuyu22'),('1023','huayuyu23');
  2. 创建目标数据表的代码示例如下。
    create table xin_test_det_1
    (    
    id string,    
    name string
    );

步骤四:创建自定义组件

  1. 登录Dataphin控制台
  2. 在Dataphin控制台页面,选择工作区地域后,单击进入Dataphin>>
  3. 进入自定义组件页面。
    1. 在Dataphin首页,单击研发
    2. 在数据开发页面,单击项目名称后的test图标,选择数据开发的项目空间(Dev项目)。
      如果您当前访问的是Dev项目,且项目空间为您的数据开发空间,则不需要选择项目空间。
    3. 在数据开发页面,将鼠标悬停在顶部菜单栏的开发上,单击集成
    4. 在数据集成页面,单击左侧导航栏的gagaG图标。
  4. 自定义组件页面,单击gagaga图标。
  5. 新建自定义组件页面,配置参数。
    fagaga
    区域 参数 描述
    基本信息 类型 选择类型RDBMS数据库
    名称 填写名称test_rdbms_mysql
    注意 因为名称定义了自定义组件的类型,所以系统不支持创建相同名称的自定义组件。
    描述 填写对自定义组件的简单描述。例如,自定义组件测试。
    选择目录 自定义组件的默认目录为自定义组件
    资源信息 驱动名称 填写驱动名称com.mysql.jdbc.Driver
    文件上传 上传已下载的驱动文件(mysql-connector-java-5.1.47)。
  6. 单击提交
  7. 提交备注对话框中,填写备注信息。
  8. 单击确定并提交,完成自定义组件的提交。
  9. 发布自定义组件至生产环境。
    1. 数据集成页面,单击顶部菜单栏的发布
    2. 待发布对象列表页面的管道脚本页签,
    3. 选择管道脚本页签,选中test_rdbms_mysql后单击操作列下的fagag图标。
      fagaga
    4. 发布对话框,填写发布名称或备注信息后,单击确定,即可将自定义组件发布至生产环境。
    5. 单击左侧导航栏的发布记录列表。在发布记录列表页面,查看自定义组件的发布状态为发布成功即可。
      dagga

步骤五:创建数据源实例

  1. 数据集成页面,鼠标选停至afgagag图标后,单击规划
  2. 在数仓规划页面,单击左侧导航栏的数据源
  3. 数据源页面,单击页面右上角的新建数据源
  4. 新建数据源对话框,选择TEST_RDBMS_MYSQL类型的数据源。
  5. 新建TEST_RDBMS_MYSQL数据源对话框,配置参数。
    fagag
    参数 描述
    数据源名称 填写数据源名称test_rdbms_mysql
    数据源描述 填写数据源的简单描述。
    数据源配置 配置数据源:
    • 如果开发模式是Basic模式,则选择生产数据源
    • 如果开发模式是Dev-Prod模式,则可以通过以下方式配置数据源:
      • 单击生产+开发数据源,配置生产环境和开发环境的数据源。
      • 单击生产数据源,配置生产数据源。完成生产数据源的创建后,单击开发数据源,配置开发环境的数据源。fagaga
    说明 系统支持配置生产数据源开发数据源为相同的数据源,也可以配置为不同的数据源。
    生产数据源生产+开发数据源 链接地址 填写数据源的链接地址。
    链接地址的格式为jdbc:mysql://{Public Endpoint}:3306/{DatabaseName}
    • {Public Endpoint}:外网地址。
    • {DatabaseName}:数据库名称。
    用户名 登录数据库的用户名。
    密码 登录数据库的密码。
    注意 自定义类型数据源不支持连接测试,请您务必保证数据源连接信息的准确性。
  6. 单击确定

步骤六:创建离线管道任务

  1. 数据源页面,鼠标选停至afgagag图标后,单击研发
  2. 在数据开发页面,鼠标选停至开发,单击集成
  3. 创建管道开发脚本。
    1. 在数据集成离线管道页面,鼠标悬停至gagag图标后,单击离线单条管道
    2. 创建管道开发脚本对话框,配置参数。
      fGag
      参数 描述
      管道名称 管道名称填写为test
      调度类型 调度类型选择为手动节点
      描述 填写简单的描述。例如,测试自定义组件
      选择目录 默认为离线管道
    3. 单击确定
  4. 开发离线管道任务。
    1. test离线管道页面,单击页面右上角的fagag图标后,单击开放前的dgd图标。
    2. 拖动组件test_rdbms_mysql_输入test_rdbms_mysql_输出至左侧的管道画布中。
      faga
    3. 鼠标选停至test_rdbms_mysql_输入组件框内右键单击后,单击属性配置
    4. test_rdbms_mysql_输入输入配置对话框,配置输入参数。
      gagag
      参数 描述
      步骤名称 本教程中保持默认。
      您也可以修改名称。步骤名称命名规则如下:
      • 只能包括字母、数字和短划线(-)。
      • 长度为64字符以内。
      数据源 选择test_rdbms_mysql
      填写来源表为xin_test_src2
      输入过滤 本教程中无需配置。
      输入过滤即填写输入字段的过滤信息,例如ds=${bizdate}输入过滤适用于以下两种场景:
      • 固定的某一部分数据。
      • 参数过滤。
      输出字段 输出字段即需要同步数据的字段。本教程中添加源表xin_test_scr2中的idname字段为输入组件的输出字段:
      1. 输出字段区域,单击新建输出字段
      2. 填写输出字段id类型选择为String
      3. 单击新建输出字段
      4. 填写输出字段name类型选择为String
    5. 单击确认
    6. 单击输入组件中的①后拖动并指向输出组件中的②处,形成有向连线。
      fagag
    7. 鼠标选停至test_rdbms_mysql_输出组件框内右键单击后,单击属性配置
    8. test_rdbms_mysql_输出输出配置对话框,配置输出参数。
      fagag
      参数 描述
      步骤名称 本教程中保持默认。
      您也可以修改名称。步骤名称命名规则如下:
      • 只能包括字母、数字和短划线(-)。
      • 长度为64字符以内。
      数据源 选择test_rdbms_mysql
      填写目标表为xin_test_dst_1
      解析方案 本教程中无需选择。
      解析方案为非必填项。选择数据输出前和输出完成的一些特殊处理方式。解析方案包括填写准备语句填写完成语句
      • 填写准备语句:导入前执行的SQL脚本。
      • 填写完成语句:导入后执行的SQL脚本。
      输入字段 默认展示输入组件中配置的输出字段。
      输出字段 输出字段即需要同步数据的字段。本教程中添加源表xin_test_scr2中的idname字段为输出组件的输出字段:
      1. 输出字段区域,单击新建输出字段
      2. 填写输出字段id类型选择为String
      3. 单击新建输出字段
      4. 填写输出字段name类型选择为String
      映射关系 单击快速映射后,选择同名映射
      映射关系指的是输入组件的输出字段和输出组件的输出字段间的映射关系。映射关系包含同名映射和同行映射:
      • 同名映射:映射字段名称相同的字段。
      • 同行映射:映射同行的字段。同行映射后,输入字段为最终的输出字段。
    9. 单击确认
  5. 单击离线管道test页面上方的执行,执行离线管道任务,查看任务是否正常执行。
    执行后的结果如下,读取和写入的数据均为23,表示任务运行正常。fagag
  6. 单击页面右上方的dggd图标,提交管道脚本。
  7. 提交备注对话框,填写备注信息。
  8. 单击确定并提交
  9. 发布离线管道任务至生产环境。
    1. 数据集成页面,单击顶部菜单栏的发布
    2. 待发布对象列表页面的管道脚本页签,
    3. 选择管道脚本页签,选中test后单击操作列下的fagag图标。
      gagag
    4. 发布对话框,填写发布名称或备注信息后,单击确定,即可将离线管道任务发布至生产环境。
    5. 单击左侧导航栏的发布记录列表。在发布记录列表页面,查看离线管道任务的发布状态为发布成功即可。
      fagag

步骤七:生产环境中运行离线管道任务

  1. 在数据集成页面,单击顶部菜单栏的运维
  2. 在运维中心,运行离线管道任务。
    1. 单击左侧导航栏的dGFg图标。
    2. 手动任务运维列表页面,单击离线管道任务test
      gaga
    3. 在离线管道任务test的详情页面,单击页面左上角的运行
    4. 运行对话框,保持默认参数,单击确定
  3. 查看离线管道任务运行生成的实例运行日志。
    1. 单击左侧导航栏的gagaga图标。
    2. 手动实例运维列表页面,单击离线管道实例test
      gagaga
    3. 在离线管道实例test的详情页面,单击页面上方的查看运行日志
    4. 运行日志页面,查看读出记录总数写出记录总数
      生产环境管道实例运行日志中的读取记录总数、写入记录总数,与开发环境管道任务运行结果的读取总数、写入总数保持一致(均为23)。这样离线管道任务在生产环境可以正常运行,即可保障生产环境业务数据正常产出。dgaga