Kettle 替换NULL值


任务描述

在Kettle转换过程中,默认情况下,会将控制当做NULL值处理。如果数据类型字段出现NULL值,那么在计算时就会出现错误。

在“2019年11月月考英语成绩.xls”文件中,学号为“201709007”的同学没有参加考试,根据规定高考时分数将按零分处理,需要使用【替换NULL值】组件,使用“0”替换该同学的英语考试分数。

实现思路

1)建立【替换NULL值】转换工程。

2)设置【替换NULL】组件参数

3)预览结果数据。

操作过程

1)建立替换NULL值转换工程

使用Ctrl+N快捷键,创建【替换NULL值】转换工程。接着创建【Excel输入】组件,设置参数,导入“2019年11月月考英语成绩.xls”文件,预览数据,“学号”字段数据为“201709007”所对应的“英语”字段数据为“<null>”即(NULL),如图所示:

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

2)设置参数

双击【替换NULL值】组件,弹出【替换NULL值】对话框,如图所示:

【替换NULL值】组件的参数包含了组件的基础参数和【替换所有字段的null值】【选择字段】【选择值类型】3种方式设置的参数,每种方式有多个不同的参数,有关参数的说明如表所示。

基础参数名称

说明

作业名称

表示【替换NULL值】组件名称,在单个转换工程中,名称必须唯一,默认值是【替换NULL值】组件名称。

选择字段

表示对所有记录的、指定字段的NULL值进行值替换的方式。默认值为空。

选择值类型

表示对所有记录、指定的数据类型的NULL值进行替换的方式。默认值为空。

下图这3种方式只能三选一,默认是【替换所有字段的null值】方式,勾选【选择字段】参数后,通过【字段】表设置具体参数;勾选【选择值类型】参数后,通过【值类型】表设置具体参数。

参数名称

说明

替换所有字段的NULL值

表示对所有记录、所有字段的NULL值进行替换方式,默认的替换方式。具体如下:

1)值替换为:表示用来替换NULL的值,默认值为空。

2)设置空字符串:表示是否设置空字符串,默认值为空。

3)掩码(日期):表示日期字段的掩码格式,默认值为空。

字段

表示勾选【选择字段】参数后,使用【字段】表设置参数,具体如下:

1)字段:表示输入流的字段名称,单击下拉框选择设置。

2)值替换为:表示要替换NULL的值。

3)转换掩码(日期):表示日期字段的掩码格式,默认值为空。

4)设置空字符串:表示是否设置空字符串,选项有:是、否,默认值为空。

值类型

表示勾选【选择值类型】参数后,使用【值类型】表设置参数,具体如下:

1)字段:表示输入流的字段名称,单击下拉框选择设置。

2)值替换为:表示要替换NULL的值。

3)转换掩码(日期)

:表示日期字段的掩码格式,默认值为空。

4)设置空字符串:表示是否设置空字符串,选项有:是、否,默认值为空。

在【替换NULL值】对话框中,设置参数,用“0”替换“英语”字段的数据“null”,步骤如下:

1)确定组件名称。【步骤名称】参数保留默认值“替换NULL值”。

2)选择【选择字段】方式设置字段参数。【选择字段】设置为“√”,并在【字段】表中,对字段的参数进行设置。此时完成【替换NULL值】组件参数的设置,如图所示。

3)预览结果数据

在【替换NULL值】转换工程中,单击【替换NULL值】组件,预览替换NULL值后的数据,如图所示: