数据传输服务DTS提供的数据加工功能ETL(Extract Transform Load),实现了流式数据的清洗和转换处理,能够准确、高效地提供您需要的数据。本文介绍如何通过DAG模式(可视化拖拽方式)配置ETL任务。
背景信息
此功能即将下线,仅部分用户可以免费体验,未曾使用过该功能的用户已无法体验,建议您在同步或迁移实例中配置ETL任务。更多信息,请参见在DTS迁移或同步任务中配置ETL。如在体验过程中遇到问题,请加钉钉群沟通(钉钉群号:32326646)。
在配置ETL任务前,请您了解以下信息:
输入/维表指ETL的源库。
输出指经过ETL处理后写入的目标库。
数据库传输服务DTS为数据同步过程提供了流式的ETL功能,您可以在源库和目标库之间添加各种转换组件,实现丰富的转换操作,并将处理后的数据实时写入目标库。例如将两张流表做JOIN操作后形成一张大表,写入目标库;或者给源表新增一个字段,并为该字段配置函数进行赋值,源表该字段经过赋值转换后写入目标库。
前提条件
当前仅支持在华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华南1(深圳)、华南3(广州)和中国香港创建ETL任务。
当前源库支持MySQL、PolarDB MySQL、Oracle、PostgreSQL、DB2 iSeries(AS/400)、DB2 LUW、DRDS(PolarDB-X 1.0)、PolarDB PostgreSQL、MariaDB、PolarDB Oracle、SQLServer、PolarDB-X 2.0。
当前目标库支持MySQL、PolarDB MySQL、Oracle、AnalyticDB MySQL 3.0、PolarDB PostgreSQL、PostgreSQL、DB2 LUW、DB2 iSeries(AS/400)、AnalyticDB PostgreSQL、SQLServer、MariaDB、DRDS(PolarDB-X 1.0)、PolarDB Oracle、Tablestore。
由于ETL功能暂不支持结构迁移,所以您需要根据转换条件在目标库侧完成对应表结构的创建。例如A表中包含字段1、字段2和字段3,B表中包含字段2、字段3和字段4,对两张表通过做JOIN操作后,需要输出字段2和字段3,则需要在目标库侧创建做JOIN操作后的C表,C表中包含字段2和字段3。
由于ETL功能暂不支持全量数据同步,所以您只能对增量数据进行实时转换。
注意事项
所有的源库和目标库属于同一地域。
所有流表均来源于同一实例。
数据库的库名和表名唯一。
转换组件存在如下限制:
表JOIN:仅支持两个表之间做JOIN操作。
字段计算器和表记录过滤:仅支持单个表结构。
配置流程
您可以选择需要的源库(支持多个源库),转换组件和需要写入的目标库即可实现ETL处理。创建ETL任务具体如下:
任务 | 说明 | 参考文档 |
配置源库信息 | 您可以选择输入/维表节点的一个或多个数据类型,并需要为每个源库依次配置以下信息: 说明 您可以多次选择同一类型的数据类型。
| |
配置转换组件 | 您可以选择转换节点的一个或多个转换组件,并需要为每种转换组件依次配置对应信息: 说明 您可以多次选择同一转换组件。
| |
配置目标库信息 | 您可以选择输出节点的一个目标库类型,并为该目标库依次配置以下信息:
|
操作步骤
进入ETL任务的列表页面。
登录数据传输服务DTS控制台。
在左侧导航栏,单击ETL。
单击左上角的,在新增数据流对话框中,您需在数据流名称配置ETL任务名称,选择开发方式为DAG。
单击确认。
根据页面信息完成ETL任务配置。
创建ETL任务。
说明下文以输入/维表 MySQL、字段计算器和输出 MySQL节点为例进行介绍。
源库可以选择一个或多个,同一类型的源库可以选择多次。
转换组件可以选择一个或多个,同一转换组件可以选择多次。
目标库只能选择一个。
在页面左侧,将输入/维表 MySQL节点拖拽至页面右侧画布的空白区域。
单击画布区域的输入/维表 MySQL-1,依次配置节点信息、字段信息和时间属性。配置方法请参见配置源库信息。
在页面左侧,将字段计算器节点拖拽至页面右侧画布的空白区域。
将鼠标指针移动至源库输入/维表 MySQL-1上,单击圆点拉出连接线,连接源库输入/维表 MySQL -1和字段计算器-1。
单击画布区域的字段计算器-1,依次配置节点信息和字段信息。配置方法请参见配置转换组件。
在页面左侧,将输出 MySQL-1节点拖拽至页面右侧画布的空白区域。
将鼠标指针移动至字段转换器-1上,并单击圆点拉出连接线,连接字段转换器-1和目标库输出 MySQL-1。
在输出 MySQL-1页面,依次配置节点信息和字段映射信息。配置方法请参见配置目标库信息。
配置完成后,根据需求单击生成Flink SQL校验或发布。
生成Flink SQL校验:在页面上方提示Flink SQL校验完成,说明Flink SQL生成成功。如果校验失败,您可以单击生成Flink SQL校验右侧的查看ETL校验详情,并根据提示信息修复后,重新进行生成Flink SQL校验。
发布:系统会先进行生成Flink SQL校验,当生成Flink SQL校验成功后,才能开始预检查。您可以单击查看ETL校验详情查看ETL校验详情。
Flink SQL校验完成后,进行预检查。当预检查通过后,DTS才能开始ETL任务。如果预检查失败,请单击检查失败项后的查看详情,根据提示信息修复后,重新进行预检查。
预检查完成后,单击页面下方的下一步购买。
在购买页面,选择链路规格和计算资源,并勾选数据传输(按量付费)服务条款和公测协议条款。
单击购买并启动,ETL任务正式开始。
您可以返回ETL任务的列表页面,查看ETL任务的任务状态。