自助ETL的主要应用场景是将多来源的异构数据,进行处理后得到具备完整性、一致性的数据模型。使用自助ETL可以提高数据的质量、适应不同的数据分析方法。
需求场景
想要将三个数据来源的表关联到一起并处理一些表中的数据,处理完成后的数据输出到一张新的表中。
1、需要关联的的表:
- 第一张表为本地Excel导入新增的表;
- 第二张表为通过SQL脚本构建供应商信息数据的表;
- 第三张表为northwindETL数据源下的供应商表。
2、需要处理的数据:
- 去除产品名称字段的空值;
- 去除销售额字段的小数位;
- 需要一个可以同时显示产品大类名称和产品名称的字段;
- 需要一个序列字段。
实现方案
数据基础
在本地数据源中,将Excel文件中的数据导入到数据库中,详情请参考 文件,数据预览如下:

操作步骤
1、在系统主界面的快捷菜单中选择 数据准备 > 自助ETL,进入“自助ETL”管理界面:

2、在“自助ETL”管理界面中,选择 新建自助ETL 按钮,进入“新建ETL”定制界面。

3、在此界面可以设计定制ETL工作流。

数据源
1、将关系数据源节点拖入画布区。在节点配置区设置关系数据源的参数,选择刚才导入的Excel表的关系数据源、SCHEMA、表名。

2、在关系数据源上右键选择 执行到此处 ,运行当前节点。

3、点击查看输出,可查看表的数据。

4、关系数据源节点输出的数据如下:
将表的数据导入当前工作流完成,下面对数据进行 数据预处理 。
数据预处理
1、去除点产品名称字段的空值。
1)将空值处理拖节点入画布区,连接两个节点。在节点配置区选择 选择列 按钮。

2)勾选产品名称字段,点击 到右边 按钮,将产品名称移到右边,然后点击 确定 按钮。

3)在空值处理下拉框中选择 过滤整行 。

4)在空值处理节点上右键,选择 执行到此处,运行当前节点。
2、去除销售额字段的小数位,新建一个字段同时包含了产品大类名称和产品名称。
1)将派生列节点拖入画布区,连接两个节点。在节点配置区选择 派生列配置 按钮。

2)函数选择“四舍五入”函数,字段选择“销售额”字段,分别拖入添加/编辑表达式区。

3)输入派生列名为“销售额取整”,点击 确定 按钮,添加一条派生列,销售额的设置完成。

4)同理,再添加一条派生列“产品”,点击 确定 按钮。

5)在空值处理节点上右键,选择 执行到此处 ,运行当前节点。派生列节点输出的数据如下:

自定义模块
3、使用“SQL脚本”节点构建一张含有供应商信息数据的表。
1)将“SQL脚本”节点拖入画布区,点击 SQL脚本 按钮。

2)在SQL脚本中窗口中,填入对应的SQL语句,静态输入供应商信息。

SQL语句如下:
select * from (
SELECT 1 AS SupplierID,'佳佳乐' AS Suppliername
UNION ALL
SELECT 2 AS SupplierID,'康富食品' AS Suppliername
UNION ALL
SELECT 3 AS SupplierID,'妙生' AS Suppliername
UNION ALL
SELECT 4 AS SupplierID,'为全' AS Suppliername
UNION ALL
SELECT 5 AS SupplierID,'日正' AS Suppliername
UNION ALL
SELECT 6 AS SupplierID,'德昌' AS Suppliername
UNION ALL
SELECT 7 AS SupplierID,'正一' AS Suppliername
UNION ALL
SELECT 8 AS SupplierID,'康堡' AS Suppliername
UNION ALL
SELECT 9 AS SupplierID,'菊花' AS Suppliername
UNION ALL
SELECT 10 AS SupplierID,'金美' AS Suppliername
UNION ALL
SELECT 11 AS SupplierID,'小当' AS Suppliername
UNION ALL
SELECT 12 AS SupplierID,'义美' AS Suppliername
UNION ALL
SELECT 13 AS SupplierID,'东海' AS Suppliername
UNION ALL
SELECT 14 AS SupplierID,'福满多' AS Suppliername
UNION ALL
SELECT 15 AS SupplierID,'德级' AS Suppliername
) Suppliers
3)在SQL脚本上右键选择 执行到此处 ,运行当前节点。“SQL脚本”节点输出的数据如下:

4、将处理好的产品销售明细表和供应商信息表,通过供应商编码连接起来。
1)选择JOIN节点,拖入画布区。

2)设置左表关联的字段如图:

3)设置右表关联的字段如图:

4)连接类型选择内连接,关联条件选择供应商ID和SupplierID。

5)在JOIN节点上右键选择 执行到此处 ,运行当前节点。
5、将关系数据源northwindETL的顾客表导入流程中。

6、将合并的两张表与顾客表通过顾客编码连接起来。

7、增加序列号,序列列名称为“序号”。

数据预处理完成,下面将处理好的数据输出。
目标源
将处理好的数据输出成一张新的表。
1、将关系目标源家待拖入画布区,选择输出表的数据源、SCHEMA,并选择 新建表 按钮。

2、新的表命名为“产品销售数据表”,点击 创建表 按钮。

3、点击 运行 按钮,创建一张新的表。

流程运行完成后,在关系目标源上右键,选择 执行到此处 ,关系目标源节点输出的数据如下:

打开数据源的位置,预览“产品销售数据表”表中的数据如图:
