1、创建如图所示的转换
2、配置“文本文件输入”控件
双击“文本文件输入”控件进入其配置界面,单击“浏览”选择需要进行数据粒度转换的文件personnel_data.txt文件,单击“增加”将该文件加入“选中的文件”中。
单击“内容”,删除“分隔符”处的;,单击一次【Insert TAB】,并取消头部复选框里的√,效果如下图所示:
单击“字段”,手动输入文件中的字段名称并选择去除空字符串的方式,效果如下图:
点击“预览记录”,可观察文本文件中的数据是否加载到文本文件输入流中:
单击“关闭” ->“确定”,完成“文本文件输入”控件的配置。
3、配置“字段选择”控件
双击“字段选择”控件进入其配置界面,在“选择和修改”选项卡的“字段”处手动加入所需字段,此处添加字段id和household_register,具体效果如下图所示:
点击“确定”按钮,完成“字段选择”控件的配置。
4、配置“排序记录”控件
双击“排序记录”控件进入其配置界面,在“字段”框中添加字段housegold_register,以该字段为基础对整体数据进行升序排序,效果如下图:
点击“确定”按钮,完成“排序记录”控件的配置。
5、配置“表输入”控件
双击“表输入”控件进入其配置界面,点击“新建”建立数据库连接,具体内如下图:
点击“确认”,在“获取SQL查询语句...”处添加下列SQL语句,可点击预览查看数据表city中的字段pid以及city是否由数据库抽取到表输入流中
点击“关闭” ->“确定”,完成“表输入”控件的配置。
6、配置“排序记录2”控件
双击“排序记录2”控件进入其配置界面
7、配置“记录集连接”控件
双击“记录集连接”控件,进入“合并排序”配置界面,并在“第一个步骤”处的下拉框中选择“排序记录”控件,“第二个步骤”处的下拉框中选择“排序记录2”控件;在“第一个步骤的连接字段”和“第二个步骤的连接字段”处分别添加连接字段,这里添加的连接字段是household_register和city,将“排序记录”控件流中的数据与“排序记录2”控件流中的数据进行合并连接;在“连接类型”处的下拉框选择连接类型,这里选择的LEFT OUTER,即左外连接,具体如图所示:
点击“确定”完成“记录集连接”控件的配置。
8、配置“字段选择2”控件
双击“字段选择2”控件进入其配置界面,配置步骤与“字段选择”控件大致相同,此处添加的字段为id,pid,household_register,具体效果如下图所示:
9、配置“排序记录3”控件
双击“排序记录3”控件,进入“排序记录”配置界面,在“字段”框中添加字段pid,以该字段为基础对整体数据进行升序排序,具体如图所示:
10、配置“表输入2”控件
此处配置步骤同“表输入”控件,不做赘述,SQL语言如下图:
11、配置“排序记录4”控件
与“排序记录”、“排序记录2”、“排序记录3”配置步骤大致相同:
12、配置“记录集连接2”控件
与“记录集连接”控件配置步骤大致相同,此处不做赘述,具体效果如下:
13、配置“过滤记录”控件
双击“过滤记录”控件进入其配置界面;在“条件”处设置过滤的条件,将字段为Provincial中值为“null”的数据过滤掉;在“发送true数据给步骤:”处的下拉框中选择“空操作”,将Provincial字段值为不为null的数据放在“空操作”控件中;在“发送false数据给步骤:”处的下拉框中选择“空操作(什么也不做)2”,将Provincial字段值为null的数据放在“空操作(什么也不做)2”控件中,具体如图所示
14、配置“字段选择3”控件
双击“字段选择3”控件,进入“选择/改名值”界面;在“选择和修改”选项卡的“字段”处手动添加所需字段,这里添加字段id和Provincial,用于后续进行输出,具体如图所示:
15、配置“表输出”控件
双击“表输出”控件进入其配置界面,点击目标表之后的“浏览”,在弹出的窗口中选中tempora表:
加入字段映射:16、配置“字段选择4”控件
此处添加字段id以及household_register,具体效果如下图:
17、配置“表输出2”控件
配置步骤与“表输出”控件相同。
18、建立新转换
创建一个新转换,内容如下:
19、配置“表输入”控件
点击“新建”,连接数据库,与上一转换相同此处不做赘述。SQL语句具体效果如下:
点击“预览”,查看数据表temporary中数据是否成功从MySQL数据库中抽取到表输入流中。
20、配置“字段选择”控件
双击“字段选择”控件,进入“选择/改名值”界面,并在“选择和修改”选项卡的“字段”处手动添加所需字段,这里添加字段id和household_register,后续用于与personnel_data.txt中的数据进行合并,“选择和修改”选项卡的配置如图所示:
21、配置“排序记录”控件
双击“排序记录”控件,进入“排序记录”配置界面,并在“字段”框中添加字段id,以此字段为基础对所有数据进行升序排序,如图所示:
22、配置“文本文件输入”控件
配置步骤与上一转换中“文本文件输入”控件完全相同
23、配置“字段选择2”控件
此处手动加入personnel_data.txt文件中的id,id_number,name,salary四个字段:
24、配置“排序记录2”控件
双击“排序记录2”控件,进入“排序记录”配置界面,并在“字段”框中添加字段id,以此字段为基础对全部数据进行升序排序,具体如图所示:
25、配置“记录集连接“控件;
26、配置“字段选择3”控件
双击“字段选择3”控件,进入“选择/改名”配置界面,并在“选择和修改”选项卡的“字段”处手动添加所需字段,用于与源数据文件中的字段相对应,具体如图所示
27、配置“文本文件输出”控件
双击进入其界面,修改文件名为personnel_data.txt
28、创建作业
创建作业,内容如下:
29、配置“转换、转换2”控件
30、运行作业;
到此,对文件personnel_data.txt的数据粒度转换完成。
二、对文本文件personnel_data_new.txt中字段为salary的数据进行商务规则计算,即计算每个人的月薪(以22天工作日计算),最终输出到文本文件personnel_data_monthly_salary.txt中。
1.打开Kettle工具,新建转换,使用Kettle工具,创建一个转换monthly_salary,并添加文本文件输入控件、增加常量控件、计算器控件、文本文件输出控件。
2、双击“文本文件输入”控件,进入“文本文件输入”界面,单击【浏览】按钮,选择要抽取personnel_data_new.txt文件;单击【增加】按钮,将要抽取的personnel_data_new.txt文件添加到转换monthly_salary中。
3、单击“内容”选项卡,在分隔符处清除默认分隔符“;”,单击【Insert TAB】按钮,在分隔符处插入一个制表符;取消勾选“头部”复选框。
4、单击“字段”选项卡,根据personnel_data.txt文件的内容添加对应的字段名称,并指定数据类型。“字段”选项卡的配置。
5、配置增加常量控件
双击“增加常量”控件,进入“增加常量”界面,在字段框中添加一个字段days,并给定一个值22。
双击“计算器”控件,进入“计算器”界面,在字段框中添加一个字段monthly_salary,用于存储月薪,该字段是由字段days和salary进行相乘所得。
6、配置文本文件输出控件
双击“文本文件输出”控件,进入“文本文件输出”界面,单击“文件名称”右侧的【浏览】按钮,选择输出文件,即文本文件personnel_data_monthly_salary,如图6-52所示;单击“内容”选项卡,进入“内容”界面,清除分隔符处的默认分隔符,单击【插入Tab】按钮,插入Tab分隔符,并在编码处的下拉框选择“UTF-8”编码,单击“字段”选项卡,进入“字段”界面,添加要输出的字段。
7、运行转换monthly_salary
单击转换工作区顶部的start按钮,运行转换monthly_salary,实现将文本文件personnel_data_new.txt中字段为salary的数据进行商务规则计算,即计算每个人的月薪(以22天工作日计算),最终输出到文本文件personnel_data_monthly_salary.txt中。
8、查看文本文件personnel_data_monthly_salary.txt中的数据通过文本编辑器工具,查看文本文件personnel_data_monthly_salary.txt中的数据。