Kettle 过滤记录


任务描述

在数据处理时,往往要对数据所述类别、区域和时间等进行限制,将限制范围外的数据过滤掉。

为了统计2班的考试人数和成绩,需要对“2019年10月年级月考数学成绩.xls”文件,使用【过滤记录】组件,过滤掉不是2班的数据。

实现思路

  • 建立【过滤记录】转换工程。
  • 设置【过滤记录】组件参数。
  • 预览结果数据。

操作过程

1)建立过滤记录转换工程

使用Ctrl+N快捷键,创建【过滤记录】转换工程。接着创建【Excel输入】组件,设置参数,导入“2019年10月年级月考数学成绩.xls”文件,预览数据,如图所示,文件包括有1班、2班的数据。

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

在【过滤记录】转换工程中,单击【核心对象】选项卡,展开【流程】对象,选中【过滤记录】组件,并拖拽至右边工作区中。由【Excel输入】组件指向【过滤记录】组件,建立节点连接,如图所示:

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

2)设置参数

双击【过滤记录】组件,弹出【过滤记录】对话框,如图所示:

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

【过滤记录】组件的参数包含组件的基础参数和【条件】表达式参数,有关参数的说明如表所示。

参数名称

说明

基础参数

步骤名称

表示【过滤记录】组件名称,在单个转换工程中,名称必须唯一,默认值为【过滤记录】组件名称。

发送true数据给步骤

表示当条件为true时,记录被发送到此组件(步骤)。此参数也可以在与下一个组件(步骤)进行节点连接是设置,默认值为空。

发送false数据给步骤

表示当条件为false时,记录被发送到此组件(步骤)。此参数也可以在与下一个组件(步骤)进行节点连接是设置,默认值为空。

条件

表示过滤条件的表达式,在【条件】表达式输入框中设置表达式中各个参数默认值为空。

条件表达式是由条件函数(运算符)构成的一个赋值语句,格式为:<字段><条件函数><表达式>,格式的中间为比较函数,左边为字段,右边是值表达式,如a=5、a>(b+2)、a<=10等。为了方便读者理解,在【条件】表达式输入框中,增加了条件表达式设置的指向说明,如图所示:

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

1)增加子条件

单击+图表可以增加子条件,这时在【条件】表达式输入框中,显示出增加的条件表达式,初次生成的是一条“null=[ ]”的空表达式,如图所示:

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

单击“null=[ ]”空表达式,可对该表达式进行设置,如图所示,点击“向上”按钮可以向上切换回条件表达式。

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

右键单击子条件表达式,弹出右键快捷菜单,可以对子条件进行编辑、删除、复制、粘贴、移动位置等操作,如图所示:

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

2)选择输入流的字段

单击“选择输入流字段”指向的【<field>】字段输入框,弹出【字段】对话框,列出输入流字段表,选择需要过滤的字段,选中“班级”字段,如图所示,单击下方【确定】按钮,确定输入流字段。

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

3)选择比较函数

单击“比较函数”指向的【=】函数输入框,弹出【函数】对话框,并列出过滤比较函数,有关过滤比较函数的说明如表所示(部分):

函数名称

说明

REGEXP

表示正则表达式,判断表达式字段是否与模式匹配。

IN NULL

表示为空,判断表达式字段是否为空。

IS NOT NULL

表示不为空,判断表达式字段是否不为空。

IN LIST

表示在列表中,判断表达式字段是否在指定的list列表中。

CONTAINS

表示包含,判断表达式字段是否包含右边的值。

STARTS WITH

表示以什么开始,判断表达式字段是否以右边的值开始。

ENDS WITH

表示以什么结束,判断表达式字段是否以右边的值结束。

LIKE

表示包括,判断表达式字段是否包括右边的值。

TRUE

表示真,判断表达式字段是否为真。

选择“=”的过滤比较函数,单击【确定】,确认过滤比较函数。

4)输入比较的值

单击“输入要比较的值”指向的【<vallue>】值输入框,弹出【E输入一个值】对话框,输入比较的值。

*有关【E输入一个值】对话框中的参数的说明如表所示。需要注意,若设置“输入要比较的值”指向的【<value>】值参数,则不能设置“选择要比较的字段”指向的【<field>】字段参数,二者只能选其一。

参数名称

说明

类型

表示值的类型。类型选项有:BigNumber、Binary、Boolean、Date、Integer、Internet、Address、Number、String、Timestamp。默认值为String。

表示值,可以是具体值或表达式,默认值为1.

转换格式

表示值的转换格式,默认值为空。

长度

表示值的长度,默认值为-1。

精度

表示值的精度,默认值为-1。

5)选择比较字段

单击“选择要比较的字段”指向的【<field>】字段输入框,弹出类似的【字段】对话框,选中要比较的字段,单击确定按钮,确定要比较的字段。同样,若设置了“选择要比较的字段”指向的【<field>】字段参数,则不能设置“输入要比较的值”指向的【<value>】值参数,二者只能选其一。

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

6)条件取反

鼠标移向“条件取反”指向的输入框,显示出黑底红字的“NOT”,单击该输入框并移开鼠标,此时显示白底黑字的“NOT”,表示条件取反,即若表达式为true,则条件为false。

若表达式为false,则条件true。“条件取反”指向的输入框为一个奇偶输入框,单击取反,再次单击则取正。

在导入的“2019年10月年级月考数学成绩.xls”文件中,过滤掉不是2班的数据,对条件表达式按照下表的设置。

输入流【<filed>】字段

【=】比较函数

【<Value>】输入一个值

班级

=

单击【<field>】输入框,弹出【E输入一个值】对话框,对参数进行设置,如下图所示。

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

此时完成【过滤记录】组件参数的设置,如图所示:

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件

3)预览结果数据

在【过滤记录】转换工程中,单击【过滤记录】组件,预览过滤记录后的数据,如图所示:

kettle,kettle过滤记录,kettle过滤,kettle数据清洗,过滤记录组件