1. 概述编辑
1.1 版本说明
报表服务器版本 | ETL版本 | 功能变动 |
---|---|---|
11.0 | 3.1 | 新增节点「数据转换」,可实现数据跨库关联 |
3.5 | 「数据转换」节点新增算子「行列转换」 | |
3.5.1 | 「数据转换」节点新增算子「JSON解析」 |
1.2 应用场景
当用户想要将不同数据库的几张表关联起来生成新表时,可以使用「数据转换」节点来处理。如下图所示:
1.3 功能简介
注:「比对删除」介绍请参见:比对删除
节点拖到设计界面后,点击该节点打开编辑界面,可以看到「数据转换」节点的设置仍然是拖动节点和连线的形式。
可以把「数据转换」节点设置界面的那些节点成为算子,这些算子的类型有:
数据输入:获取要关联的数据,可以是数据库数据、RestAPI 数据、数据集数据。
数据输出:将关联好的数据保存到一张表里,可以是已有的表也可以新建一张表。
连接:选择这些表的关联字段以及关联方式。
其中算子连接的关联方式共有四种。分别如下:
左连接(LEFT JOIN):左合并
右连接(RIGHT JOIN):右合并
内连接(INNER JOIN):取交集
全外连接(FULL OUTER JOIN):取并集
2. 示例编辑
本文演示一个简单示例:将两个不同数据库中的成绩表关联成一张新表。
2.1 准备数据
1)数据库 etlwendy 中有一张英语成绩表:English。如下图所示:
2)数据库 etlwendy 中有一张数学成绩表:Math。如下图所示:
2.2 创建任务
新建一个 ETL 任务,将一个「数据转换」节点拖到设计界面,点击该节点打开设置界面。如下图所示:
2.3 设置数据输入
1)将一个「DB输入」算子拖到数据转换的设计界面,如下图设置数据来源,并右键节点将其重命名为「英语成绩表」。如下图所示:
2)再将一个「DB输入」算子拖到数据转换的设计界面,如下图设置数据来源,并右键节点将其重命名为「数学成绩表」。如下图所示:
2.4 设置连接
将一个「数据关联」算子拖到数据转换的设计界面,用线条跟两个上游节点「英语成绩表」和「数学成绩表」连起来。
点击「数据关联」节点,左表设置为「英语成绩表」,右表设置为「数学成绩表」,连接方式选择「左连接」,连接字段设置为「姓名」,右键节点重命名为「数据左合并」。如下图所示:
注:连接字段就是两张表的关联字段,可以设置多个,多个连接字段为且的关系。
配置好关联后,可以使用「数据预览」先看看表合并的效果:
2.5 设置数据输出
将一个「DB表输出」算子拖到数据转换的设计界面,用线条跟上游节点「数据左合并」连起来,右键节点重命名为「保存到新表」。如下图所示:
2.6 运行节点
点击右上角「确认」,保存数据转换的设计。如下图所示:
回到 ETL 任务设计界面,点击右上角「保存并运行」,日志有执行成功信息表示任务成功运行。
可以看到数据库 dwTest1 中新增了一张表 merge,里面保存的是 ETL 任务左合并的数据。