任务描述
在进行数据统计中,往往要对类别、区域、型号等范围进行统计,分组是对指定的字段或字段集合的数据进行分组统计,Kettle分组组件可以解决这一需求。
为了了解各班级和学生的学业情况,需要对“2019年10月月考英语成绩.xls”文件,使用【分组】组件,统计各班的人数和平均分数。
实现思路
- 建立【分组】转换工程。
- 设置【分组】组件参数。
- 预览结果数据。
操作过程
1)建立分组转换工程
在分组之前,必须使用关键字段对数据记录进行排序,确定哪些记录分组在一起。参考Kettle 排序记录的操作过程,建立排序并浏览“2019年10月月考英语成绩.xls”文件数据。
使用Ctrl+N快捷键,创建【分组】转换工程。接着创建【Excel输入】组件,设置参数,导入“2019年10月月考英语成绩.xls”文件。
再创建【排序记录】组件,并由【Excel输入】组件指向【排序记录】组件,建立节点连接,如图所示。
双击【排序记录】组件,设置“班级”字段参数,按照生序排序,预览排序记录数据,如图所示,“1班”和“2班”分别被排序在一起。
在【分组】转换工程中,单击【核心对象】选项卡,展开【统计】对象,找到【分组】组件,并拖拽到右边工作区中,并由【排序记录】组件指向【分组】组件,建立节点连接,如图所示。
2)设置参数
双击【分组】组件,弹出【分组】对话框,如图所示。
【分组】组件参数包含组件的基础参数,以及【构成分组的字段】和【聚合】字段参数,参数说明如表所示。
参数名称
|
说明
|
基础参数
|
步骤名称
|
表示分组的组件名称,在单个转换工程中,名称必须唯一。默认值是【分组】的组件名称。 |
包括所有的行
|
表示是否包括所有记录。使用勾选框设置参数,希望在输出中包含所有记录,则勾选,只想输出聚合记录,则不勾选。默认值为空。 |
排序目录
|
表示指定存储临时文件的目录。分组的记录数超过5000个时,必须指定搞一个目录。此参数只有勾选【包括所有的行】参数后才能设置,默认值是系统的标准临时目录%%java.io.tmpdir%%。 |
临时文件前缀
|
表示命名临时文件的文件前缀,只有勾选【包括所有的行】参数后才能设置。默认值为grp。 |
添加行号,在每个组中重新启动
|
表示是否添加一个记录号,在每个组中从1重新启动。勾选此参数时所有记录都包含在输出中,且每个记录都有一个记录号。此参数在勾选【包括所有的行】参数后才有效。默认值为空。 |
行号列名
|
表示要为每个新组添加记录的字段名称。默认值为空。 |
总返回一个结果行
|
表示是否即使没有输入记录,也返回结果记录。当没有输入记录时,返回计数为0。如果只想有输入时才输出结果记录,则此参数不勾选。默认值为空。 |
构成分组的字段
|
表示分组的字段参数。分组的字段可以有多个,使用一个【构成分组的字段】表设置【分组字段】参数,可以设置多个分组子段。需要注意的是,如果没有分组的字段,那么该表留空来计算整个数据集的聚合函数。默认值为空。 |
聚合
|
表示聚合字段的参数,使用一个【聚合】表来设置聚合字段名称、聚合方法和输出结果新字段名称,有关聚合字段的参数说明如下内容所示。 |
名称
|
表示聚合字段的名称,输出结果的新字段名称,默认值为空。 |
Subject
|
表示对其使用聚合方法的对象字段,默认值为空。 |
类型
|
表示聚合方法。在下拉框中选取聚合方法,默认值为空。 |
值
|
表示聚合的值,默认值为空。 |
在【分组】对话框中,设置参数,分组统计各班的人数和平均分数,步骤如下:
1)设置组件名称。【步骤名称】参数采用默认值“分组”。
2)确定分组字段。在【构成分组字段】表的第1行,【分组字段】设置为“班级”。
3)确定聚合字段并设置参数。对【聚合】表的参数进行设置。此时完成【分组】组件参数的设置,如图所示。
3)预览结果数据
在【分组】转换工程中,单击【分组】组件,预览数据分组后的结果,如图所示。