数据传输服务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 MySQL、PolarDB MySQL引擎、PolarDB-X 1.0(原DRDS)、自建Oracle、自建PostgreSQL、RDS PostgreSQL、DB2 for LUW、DB2 for i、PolarDB PostgreSQL引擎。
- 当前目标库支持自建MySQL、RDS MySQL、PolarDB MySQL引擎、云原生数据仓库AnalyticDB MySQL版 3.0、自建Oracle、自建PostgreSQL、RDS PostgreSQL、DB2 for LUW、DB2 for i、PolarDB PostgreSQL引擎。
- 由于ETL功能暂不支持结构迁移,所以您需要根据转换条件在目标库侧完成对应表结构的创建。例如A表中包含字段1、字段2和字段3,B表中包含字段2、字段3和字段4,对两张表通过做JOIN操作后,需要输出字段2和字段3,则需要在目标库侧创建做JOIN操作后的C表,C表中包含字段2和字段3。
- 由于ETL功能暂不支持全量数据同步,所以您只能对增量数据进行实时转换。
注意事项
- 所有的源库和目标库属于同一地域。
- 所有流表均来源于同一实例。
- 数据库的库名和表名唯一。
- 转换组件存在如下限制:
- 表JOIN:仅支持两个表之间做JOIN操作。
- 字段计算器和表记录过滤:仅支持单个表结构。
配置流程

您可以选择需要的源库(支持多个源库),转换组件和需要写入的目标库即可实现ETL处理。创建ETL任务具体如下:
任务 | 说明 | 参考文档 |
---|---|---|
配置源库信息 | 您可以选择输入/维表节点的一个或多个数据类型,并需要为每个源库依次配置以下信息:
说明 您可以多次选择同一类型的数据类型。
|
配置源库信息 |
配置转换组件 | 您可以选择转换节点的一个或多个转换组件,并需要为每种转换组件依次配置对应信息:
说明 您可以多次选择同一转换组件。
|
配置转换组件 |
配置目标库信息 | 您可以选择输出节点的一个目标库类型,并为该目标库依次配置以下信息:
|
配置目标库信息 |
操作步骤
- 进入ETL任务的列表页面。
- 登录DMS数据管理服务。
- 在顶部菜单栏中,单击集成与开发(DTS)。
- 在左侧导航栏,选择 。
- 单击左上角的
,在新增数据流对话框中,您需在数据流名称配置ETL任务名称,选择开发方式为DAG。
- 单击确认。
- 根据页面信息完成ETL任务配置。