PTS数据加工功能实现了流式数据的清洗和转换处理,能够准确、高效地完成全链路压测前的数据准备工作。本文介绍如何通过DAG模式(可视化拖拽方式)配置ETL(Extract Transform Load)任务。

前提条件

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

背景信息

数据加工为结构同步过程提供了流式的ETL功能,您可以在源库和目标库之间添加各种转换组件,实现丰富的转换操作,并将处理后的数据实时写入目标库。例如将两张流表做JOIN操作后形成一张大表,写入目标库;或者给源表新增一个字段,并为该字段配置函数进行赋值,源表该字段经过赋值转换后写入目标库。

在配置ETL任务前,请您了解以下信息:
  • 输入/维表指ETL的源库。
  • 输出指经过ETL处理后写入的目标库。

注意事项

  • 源库和目标库不能使用同一个连接模板。您需要为源库和目标库分别新建连接模板,新建方法,请参见新建连接模板。或者在DMS中录入源实例和目标实例,录入方式,请参见实例管理
  • 所有的源库和目标库属于同一地域。
  • 所有流表均来源于同一实例。
  • 数据库的库名和表名唯一。
  • 转换组件存在如下限制:
    • 表JOIN:仅支持两个表之间做JOIN操作。
    • 字段计算器表记录过滤:仅支持单个表结构。

操作步骤

下述操作步骤中数据库源端与目标端的配置以MySQL为例。

  1. 登录PTS控制台,在左侧导航栏中选择数据工厂 > 数据加工
  2. 数据加工页面,单击+新增数据流1
  3. 新增数据流页面,输入自定义的数据流信息,然后单击确认2
  4. 数据加工页面,完成以下配置。
    1. 在页面左侧的输入/维表区域选择MySQL,并将其拖拽至页面右侧画布,单击MySQL,配置数据源。配置数据源.png
      参数 说明
      节点配置
      请输入源库名称 数据加工会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
      区域 选择源库所在地域。
      数据库连接模版 选择连接源库所在数据库实例的模板名称。您也可以单击右侧的新建连接模板进行新建,新建方法,请参见新建连接模板
      节点类型 选择节点类型。
      • 流表
      • 维表
      转换格式 如果节点类型参数选择为流表,出现格式转换选择区域:
      • Upsert流:包含两种类型的message,upsert messages和delete messages。转换为upsert流的动态表需要(可能是组合的)唯一键。通过将INSERT和UPDATE操作编码为upsert message,将DELETE操作编码为delete message,将具有唯一键的动态表转换为流。
      • Append-Only流:仅通过INSERT操作修改的动态表可以通过输出插入的行转换为流。
      库表选择 选择需要转换的库表。
      说明 当您完成库表的选择时,系统自动进入字段配置页面。
      输出字段
      输出字段 根据实际需要,在列名称列勾选需要的字段。
      时间属性(当节点配置页签中,节点类型参数选择为流表出现时间属性页签)
      选择事件时间Watermark字段 选择数据产生事件时代表时间的字段。
      事件时间Watermark延迟时间
      • 输入数据产生事件时的延迟时间。
      • 时间单位选择支持:时、分、秒。
      处理时间ProcTime 输入事件处理时间的字段。
      说明 处理时间ProcTime指的是执行具体操作时的机器本地时间。
    2. 数据源配置完成后,在页面左侧的转换区域选择配置转换组件,并将其拖拽至页面右侧画布,选择配置转换组件,完成后连接数据源。配置计算器.png
      参数 说明
      表Join
      请输入转换名称 建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
      Join类型符左边的表 选择放置在Join类型符左边的表。
      时态Join时间属性 选择Join的时间属性,默认为Join。
      • 基于事件时间Watermark
      • 基于处理时间ProcTime
      说明 时态Join要求流表均需定义时间属性,右表要有主键;如果右表是维表,要求其主键在equal条件中。
      选择Join操作 选择Join操作方式。
      • Inner Join:数据为两张表的交集。
      • Left Join:左表中的数据不变,右表中的数据为两张表的交集。
      • Right Join:左表中的数据为两张表的交集,右表中的数据不变。
      增加Where条件 单击增加Where条件,从多个数据源中选择Join的条件字段。
      说明 等号(=)左侧为数据源左表字段,右侧为数据源右表字段。
      字段计算器
      转换名称 数据加工会自动生成一个名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
      计算器配置 选择以下任意一种方式为目标字段配置计算方法。
      • 直接输入需要的计算方法。
      • 选择目标字段、函数集或操作符区域中的选项配置计算方法。
      表记录过滤
      转换名称 数据加工会自动生成一个名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
      where条件 在Where条件区域,您可以选择以下任意一种方法配置Where条件。
      • 直接输入需要的Where条件。
      • 单击字段输入操作符区域中的选项配置Where条件。
    3. 转换组件配置完成后,在页面左侧的转换区域选择配置目标库,并将其拖拽至页面右侧画布,单击MySQL,配置目标库,完成后连接转换组件。配置目标端.png
      参数 说明
      节点配置
      请输入数据源名称 数据加工会自动生成一个数据源名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
      区域 选择目标库所在地域。
      数据库连接模版 选择目标库所在数据库实例的模板名称。您也可以单击右侧的新建连接模板进行新建,新建方法,请参见新建连接模板
      表映射 选择目标库通过转换处理后需要存储的目标表。

      选择目标表区域,单击目标表。

      字段映射
      字段映射 根据实际需要,在列名称列勾选需要的参数。
  5. 预检查并启动任务。
    1. 配置完成后,单击生成Flink SQL校验,对任务配置进行校验。
    2. 检验完成后,单击查看ETL校验详情,在对话框中,查看生成结果。确认无误后,单击关闭
      说明 如校验失败,您可以根据生成结果显示的失败原因进行修复。
    3. 单击下一步保存任务并预检查。当预检查通过后,数据加工才能开始ETL任务。如果预检查失败,请单击检查失败项后的查看详情,根据提示信息修复后,重新进行预检查。预检查.png
    4. 预检查完成后,单击页面下方的下一步购买
    5. 购买配置向导页,选择链路规格计算资源,阅读并勾选数据传输(按量付费)服务条款公测协议条款,单击购买并启动购买并启动.png
      说明 公测期间,每个用户可以免费创建并使用两个ETL实例。
    6. 在启动确认页面,单击确认够后确认.png

相关操作

数据加工创建完成后,选择已创建的数据加工信息,在对应的操作列下:
  • 单击配置任务,修改数据加工的ETL任务。
  • 单击运维,查看数据加工任务的任务日志、监控报警、发布列表、运行日志等信息。
  • 单击释放任务,删除已创建的ETL任务。

后续步骤

如您需查看ETL结果,可在DMS控制台等数据库管理工具中查看目标表。更多信息,请参见数据管理DMS官方文档