一、对文本文件进行数据粒度转换,即将文本文件personnel_data.txt中字段household_register的数据统一成省份,并且输出到文本文档personnel_data_new.tx

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中的数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值