Kettle完全去重
一、实验目的
1、了解到数据完全去重的相关知识和操作。
二、实验设备与器件
PC机、phpstudy(wamp环境)、sublime text或者php storm工具
三、实验内容
相关知识
完全去重指的是消除完全重复的数据,这里提到的完全重复数据指的是数据表记录字段值完全一样的数据。
例如:现在有两个表格,分别记录不同年份的用户信息,现要求合并统计所有用户信息,发现合并后的表格存在完全重复的数据,示例如图1所示。

图1 用户名单
从图1中可以看出,合并后的数据表中存在完全相同的数据,为了便于后期更加方便地使用这些用户数据,通常情况下会对数据进行去重操作。
接下来使用Kettle
工具演示如何消除这些完全重复的数据,具体步骤如下:
1. 数据准备
合并后的用户名单存放在CSV文件merge.csv
中,具体内容如图2所示。

图2 merge.csv文件的内容
2. 打开Kettle工具,新建转换
使用Kettle工具创建转换repeat_transform
,并添加CSV
文件输入
控件、唯一行(哈希值)
控件以及Hop
跳连接线,具体效果如图3所示。

图3 创建转换 repeat_transform
3. 配置CSV
文件输入
控件
双击图3中的CSV
文件输入
控件,进入CSV
文件输入
界面,如图4所示:

图4 “CSV文件输入”界面
在图4中单击“浏览”按钮,选择要进行完全去重处理的CSV文件merge.csv,如图5所示。

图5 选择要进行完全去重处理的CSV文件merge.csv
在图5中单击“获取字段”按钮,Kettle会自动检索CSV文件,并对文件中的字段类型、格式、长度、精度等属性进行分析,具体如图6所示。

图6 Kettle 检索CSV文件
在图6中单击“预览”按钮,查看CSV文件merge.csv的数据是否加载到CSV文件输入流中,具体效果如图7所示。

图7 预览数据
从图7中可以看出,CSV文件merge.csv的数据已经成功抽取到CSV文件输入流中,单击“关闭”按钮关闭预览数据窗口,再点击“确定”按钮,完成“CSV文件输入”控件的配置。
4. 配置“唯一行(哈希值)”控件
双击图3中的“唯一行(哈希值)”控件,进入“唯一行(哈希值)”界面,如图8所示。

图8 “唯一行(哈希值)”界面
在图8中的“用来比较的字段”处添加要去重的字段,这里可以单击“获取”按钮,添加需要去重的字段,具体如图9所示。

图9 添加需要去重的字段
在图9中单击“确定”按钮,完成“唯一行(哈希值)”控件的配置。
5. 运行转换repeat_transform
单击转换工作区顶部的运行按钮,运行创建的转换repeat_transform,实现消除CSV文件中完全重复的数据,具体如图10所示。

图10 运行转换repeat_transform
从图10中执行结果窗口的“步骤度量”选项卡可以看出,“CSV文件输入”控件输入10条数据并写入该控件9条数据(其中有1条数据为表头);“唯一行(哈希值)”控件从
“CSV文件输入”控件读取9条数据,写入该控件7条数据,拒绝2条数据(这2条数据为完全重复数据)。也就是说,CSV文件merge.csv中有2条数据与其他数据完成重复。
选中图10中的“唯一行(哈希值)”控件,单击执行结果窗口的Preview data选项卡,查看是否消除CSV文件merge.csv中完全重复的数据,具体如图11所示。

图11 查看是否消除CSV文件merge.csv中完全重复的数据
从图11中可以看出,CSV文件merge.csv中的数据已经没有了完全重复的值,说明通过工具实现了消除完全重复数据的功能。
注意:本关卡操作只是将CSV文件merge.csv的数据读取到Kettle中进行完全去重处理,并不会改变CSV文件merge.csv的原始数据,如需保存处理后的数据,须添加相关输出控件。
编程要求
请在右侧云桌面
中进行操作,完成以下任务:
· 根据以上操作步骤完成对merge.csv文件的完全去重,文件路径:/data/workspace/data_set/merge.csv
;
· 添加“文本文件输出”节点,将去重后的数据输出到文本文件中,输出文件路径:/data/workspace/data_set/step1_out.txt
。
测试说明
在按编程要求
完成操作后,请点击评测
按钮,系统会自动对你的操作进行评测。
当你的结果与预期输出一致时,即为通过。
预期输出:
Name;Gender;City
zhangsan ;male ;beijing
liwu ;male ;nanjing
hanmeimei;female;hebei
wangliu ;male ;henan
1isi ;male ;nanjing
wangwu ;male ;henan
xiaoming ;female;sichuan