1.通过使用Kettle工具,创建一个转换fill_unusual_value,并添加“表输入”控件、“过滤记录”控件、“空操作(什么也不做)”控件、“设置值为NULL”控件、“合并记录”控件、“替换NULL值”控件、字段选择控件以及Hop跳连接线。
2.双击“表输入”控件,进入“表输入”配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。在SQL框中编写查询数据表interpolation_data的SQL语句,然后单击【预览】按钮,查看数据表interpolation_data的数据是否成功从MySQL数据库中抽取到表输入流中。
3.双击“过滤记录”控件,进入“过滤记录”配置界面。在“条件”处设置过滤的条件,即设置Height字段的取值范围([114-226]),从而判断数据表中的每个数据是否为异常值。若是在非异常值的取值范围内,则是非异常值,否则是异常值。
4.在“发送true数据给步骤:”处的下拉框中选择“空操作(什么也不做)2”,将非异常值放在“空操作(什么也不做)2”控件中;在“发送false数据给步骤:”处的下拉框中选择“空操作(什么也不做)”,将异常值放在“空操作(什么也不做)”控件中。
5.双击“设置值为NULL”控件,进入“设置值为NULL”界面;在“字段”处添加要设为NULL值的字段名称和值。
6.双击“合并记录”控件,进入“合并行(比较)”界面。在“旧数据源:”处的下拉框选择“设置为NULL值”,“新数据源:”处的下拉框选择“空操作(什么也不做)2”;在“匹配的关键字:”处,添加关键字段,即id。
7.双击“替换NULL值”控件,进入“替换NULL值”界面。勾选“选择字段”处的复选框,并在“字段”框添加字段为Hight,值替换为170(通过计算得到499人的平均身高值近似为170,因此用170替换字段Hight中的NULL值)
8.双击“字段选择”控件,进入“选择/改名值”界面。在“移除”选项卡处添加要移除的字段名称,这里移除的是字段flagfield。
9.单击转换工作区顶部的 按钮,运行创建的fill_unusual_value转换。
10.单击“字段选择”控件,再单击执行结果窗口的“Preview data”选项卡,查看是否修改并替换数据表interpolation_data中的异常值。