数据传输服务DTS提供的数据加工功能ETL(Extract Transform Load),实现了流式数据的清洗和转换处理,能够准确、高效地提供您需要的数据。本文介绍如何通过DAG模式(可视化拖拽方式)配置ETL任务。

背景信息

说明 ETL功能在公测阶段,支持免费体验。如在体验过程中遇到问题,请加钉钉群沟通(钉钉群号:32326646)。
  • 在配置ETL任务前,请您了解以下信息:
    • 输入/维表指ETL的源库。
    • 输出指经过ETL处理后写入的目标库。
  • 数据库传输服务DTS为数据同步过程提供了流式的ETL功能,您可以在源库和目标库之间添加各种转换组件,实现丰富的转换操作,并将处理后的数据实时写入目标库。例如将两张流表做JOIN操作后形成一张大表,写入目标库;或者给源表新增一个字段,并为该字段配置函数进行赋值,源表该字段经过赋值转换后写入目标库。

前提条件

  • 当前仅支持在华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华南1(深圳)和华南3(广州)创建ETL任务。
  • 当前源库支持自建MySQL、RDS MySQLPolarDB MySQL引擎PolarDB-X 1.0(原DRDS)、自建Oracle、自建PostgreSQL、RDS PostgreSQLDB2 for LUWDB2 for iPolarDB PostgreSQL引擎
  • 当前目标库支持自建MySQL、RDS MySQLPolarDB MySQL引擎云原生数据仓库AnalyticDB MySQL版 3.0、自建Oracle、自建PostgreSQL、RDS PostgreSQLDB2 for LUWDB2 for iPolarDB PostgreSQL引擎
  • 由于ETL功能暂不支持结构迁移,所以您需要根据转换条件在目标库侧完成对应表结构的创建。例如A表中包含字段1、字段2和字段3,B表中包含字段2、字段3和字段4,对两张表通过做JOIN操作后,需要输出字段2和字段3,则需要在目标库侧创建做JOIN操作后的C表,C表中包含字段2和字段3。
  • 由于ETL功能暂不支持全量数据同步,所以您只能对增量数据进行实时转换。

注意事项

  • 所有的源库和目标库属于同一地域。
  • 所有流表均来源于同一实例。
  • 数据库的库名和表名唯一。
  • 转换组件存在如下限制:
    • 表JOIN:仅支持两个表之间做JOIN操作。
    • 字段计算器表记录过滤:仅支持单个表结构。

配置流程

配置ETL任务流程
您可以选择需要的源库(支持多个源库),转换组件和需要写入的目标库即可实现ETL处理。创建ETL任务具体如下:
任务 说明 参考文档
配置源库信息 您可以选择输入/维表节点的一个或多个数据类型,并需要为每个源库依次配置以下信息:
说明 您可以多次选择同一类型的数据类型。
  1. 配置节点信息。
  2. 配置字段信息。
  3. 可选:如果您选择的库表类型为流表,您还需配置时间属性。
配置源库信息
配置转换组件 您可以选择转换节点的一个或多个转换组件,并需要为每种转换组件依次配置对应信息:
说明 您可以多次选择同一转换组件。
  • 表JOIN
    1. 配置节点信息。
    2. 配置字段信息。
  • 字段计算器
    1. 配置转换名称。
    2. 配置计算器。
  • 表记录过滤
    1. 配置转换名称。
    2. 配置Where条件。
配置转换组件
配置目标库信息 您可以选择输出节点的一个目标库类型,并为该目标库依次配置以下信息:
  1. 配置节点信息。
  2. 配置字段映射信息。
配置目标库信息

操作步骤

  1. 进入ETL任务的列表页面。
    1. 登录DMS数据管理服务
    2. 在顶部菜单栏中,单击集成与开发(DTS)
    3. 在左侧导航栏,选择数据集成 > 流式ETL
  2. 单击左上角的新增数据流,在新增数据流对话框中,您需在数据流名称配置ETL任务名称,选择开发方式DAG
  3. 单击确认
  4. 根据页面信息完成ETL任务配置。
    1. 创建ETL任务。
      说明
      • 下文以输入/维表 MySQL字段计算器输出 MySQL节点为例进行介绍。
      • 源库可以选择一个或多个,同一类型的源库可以选择多次。
      • 转换组件可以选择一个或多个,同一转换组件可以选择多次。
      • 目标库只能选择一个。
      1. 在页面左侧,将输入/维表 MySQL节点拖拽至页面右侧画布的空白区域。
      2. 单击画布区域的输入/维表 MySQL-1,依次配置节点信息、字段信息和时间属性。配置方法请参见配置源库信息
      3. 在页面左侧,将字段计算器节点拖拽至页面右侧画布的空白区域。
      4. 将鼠标指针移动至源库输入/维表 MySQL-1上,单击圆点拉出连接线,连接源库输入/维表 MySQL -1字段计算器-1字段计算器new
      5. 单击画布区域的字段计算器-1,依次配置节点信息和字段信息。配置方法请参见配置转换组件
      6. 在页面左侧,将输出 MySQL-1节点拖拽至页面右侧画布的空白区域。
      7. 将鼠标指针移动至字段转换器-1上,并单击圆点拉出连接线,连接字段转换器-1和目标库输出 MySQL-1连接目标库
      8. 输出 MySQL-1页面,依次配置节点信息和字段映射信息。配置方法请参见配置目标库信息
      9. 配置完成后,根据需求单击生成Flink SQL校验发布
        • 生成Flink SQL校验:在页面上方提示Flink SQL校验完成,说明Flink SQL生成成功。如果校验失败,您可以单击生成Flink SQL校验右侧的查看ETL校验详情,并根据提示信息修复后,重新进行生成Flink SQL校验。
        • 发布:系统会先进行生成Flink SQL校验,当生成Flink SQL校验成功后,才能开始预检查。您可以单击查看ETL校验详情查看ETL校验详情。
    2. Flink SQL校验完成后,进行预检查。当预检查通过后,DTS才能开始ETL任务。如果预检查失败,请单击检查失败项后的查看详情,根据提示信息修复后,重新进行预检查。
    3. 预检查完成后,单击页面下方的下一步购买
    4. 购买页面,选择链路规格计算资源,并勾选数据传输(按量付费)服务条款公测协议条款
    5. 单击购买并启动,ETL任务正式开始。
      您可以返回ETL任务的列表页面,查看ETL任务的任务状态