先看预处理的源数据,如下图示(为部分源数据):

ETL筛选数据

我们需要将上图中“ID_NO_SZ”字段中,累计出现3次以上的数据全部筛选出来,为此,成功解决的流程如下图示:

ETL筛选数据

现对以上流程详细说明,并对一些常见的组件的用法进行说明。

ETL筛选数据

该组件将同一数据分多个副本传送到多个数据应用点。在本方案中,先通过多点传送的一个副本找出累计出现3次以上的全部ID_NO_SZ,再用多点传送的另一个副本找出含ID_NO_SZ的全部记录数。因此,多点传送在本解决方案中起到至关重要的作用。

ETL筛选数据

上图为汇总组件,相当于SQL中的分组(GROUP BY)功能,其使用方法如下图:

ETL筛选数据

图中为对ID_NO_SZ进行计数统计,输出为CNT。下面根据CNT进行筛选数据(CNT>=3)。

ETL筛选数据

注意:1、因统计计数CNT为DT_I8类型,而3为DT_I4类型,当设定判定条件时,须将CNT隐式转换为DT_I4类型,如上图示。2、在合并联结前,必须对合并的源数据(最终结果输出的数据)进行排序处理,否则无法合并数据。

ETL筛选数据

最后特别说明一下合并联结的设置,如下图示:

ETL筛选数据

在合并联结中,设置合并联结输入数据时,筛选条件为”合并联结左方输入“,待筛选数据为”合并联结右方输入“,本实例中,联结类型为”左方外部联结“,如上图示,这样就可以筛选出所有满足条件的数据。

空非易文章均为原创,转载请以链接形式注明本文地址

本文地址:http://pengzhiyong.com/archives/etl-filter-data.html

作者:空非易 | 标签: , | 浏览:1859