ETL的主要应用场景是将多来源的异构数据,进行处理后得到具备完整性、一致性的数据模型,在这个过程中,最重要是数据模型的设计以及工程实施的方法论,ETL工具起辅助作用,用以提高实施效率、保障工程实施的规范化、辅助运维管理。

需求场景

想要将三个数据来源的表进行关联并处理表中的一些数据,处理完成后将数据输出到一张新的表中。

1、三个数据来源的表:

  • 第一张表为本地Excel导入新增的表;
  • 第二张表为通过SQL脚本构建供应商信息数据的表;
  • 第三张表为Northwind数据源下的供应商表。

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脚本”节点。

在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

4、将两张表表合并起来,

1)选择JOIN节点,拖入画布区。

2)左表关联字段

3)右表关联字段

4)连接类型选择内连接,关联条件通过顾客编号关联两张表。

5、将关系数据源northwindETL的顾客表导入流程中。

6、连接类型为内连接,关联条件通过顾客编码关联两张表。

7、表的前面增加序列号。将增加序列号节点拖入画布区,命名为“序号”。

数据预处理完成。

目标源

将处理好的数据,输出为新的一张表。

1、将关系目标源家待拖入画布区,选择输出表的数据源、SCHEMA,并选择 新建表 按钮。

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

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

如图,流程运行完成。

在关系目标源上右键,选择 执行到此处 ,可查看数据处理后的表。

打开数据源的位置,查看新增的表。

预览表中数据如图: