“区分”节点
必须移除数据集中的重复记录后才能开始数据挖掘。例如,在某个市场营销数据库中,个人可能以不同的地址或公司信息多次出现。您可以使用“区分”节点来查找或移除数据中的重复记录,或者根据一组重复记录创建单个组合记录。
要使用“区分”节点,您必须先定义一组键字段,用于确定何时将两个记录视为重复项。
如果您仅挑选了部分字段用作键字段,那么两个“重复”记录可能并非确实完全相同,这是因为它们的其余字段的值仍可能有所不同。在这种情况下,您还可以定义在每组重复记录中应用的排序顺序。此排序顺序使您能够进行微调,以确定要将哪个记录视为组中的第一个记录。否则,会将所有重复项都视为可交换,并可能选中任意记录。不会对记录的传入顺序加以考虑,因此,使用上游“排序”节点并无帮助(请参阅下文中的『在“区分”节点中进行记录排序』)。
Mode. 指定是否创建组合记录,或者指定包括还是排除(废弃)第一条记录。
- 为每个组创建组合记录。提供一种对非数字字段进行汇总的方式。选中此选项将使“组合”选项卡可用,您可以在该选项卡上指定如何创建组合记录。请参阅区分组合设置以获取更多信息。
- 仅包括每个组中的第一个记录。选择每组重复记录中的第一个记录并废弃余下的记录。第一个记录由下面定义的排序顺序确定,而不是由记录的传入顺序确定。
- 仅废弃每个组中的第一个记录。废弃每组重复记录中的第一个记录并选中余下的记录。第一个记录由下面定义的排序顺序确定,而不是由记录的传入顺序确定。此选项对于 找出 数据中的重复非常有帮助,因为您随后即可在流中检查这些内容。
关键分组字段。列出用于确定记录是否相同的一个或多个字段。可以进行下列操作:
- 通过使用右侧的字段选择器按钮可向列表添加字段。
- 通过使用红色删除按钮从列表中删除字段。
组内记录的排序依据。列出用于确定各个记录在每组重复项中的排序方式以及是按升序还是降序排序的字段。可以进行下列操作:
- 通过使用右侧的字段选择器按钮可向列表添加字段。
- 通过使用红色删除按钮从列表中删除字段。
- 如果您按多个字段排序,则使用上下按钮移动字段。
如果您已选择包括或排除每个组中的第一个记录,并且将哪个记录视为第一个记录对您而言十分重要,那么必须指定排序顺序。
缺省排序顺序。指定缺省情况下各个记录是按排序键值的升序还是降序排列。
在“区分”节点中进行记录排序
如果一组重复项中的记录顺序至关重要,那么您必须使用“区分”节点中的组内记录的排序依据选项来指定顺序。请勿依赖于上游“排序”节点。请注意,不会对记录的传入顺序加以考虑 - 仅考虑此节点中指定的顺序。
如果未指定任何排序字段(或者指定的排序字段不够充分),那么每组重复项中的记录均为无序(或者不完全地进行了排序),而结果可能不可预测。
例如,假定存在大量与众多机器相关的日志记录。此日志包含数据,例如:
| 时间戳 | 机器 | 温度 |
|---|---|---|
| 17:00:22 | 机器 A | 31 |
| 13:11:30 | 机器 B | 26 |
| 16:49:59 | 机器 A | 30 |
| 18:06:30 | 机器 X | 32 |
| 16:17:33 | 机器 A | 29 |
| 19:59:04 | 机器 C | 35 |
| 19:20:55 | 机器 Y | 34 |
| 15:36:14 | 机器 X | 28 |
| 12:30:41 | 机器 Y | 25 |
| 14:45:49 | 机器 C | 27 |
| 19:42:00 | 机器 B | 34 |
| 20:51:09 | 机器 Y | 36 |
| 19:07:23 | 机器 X | 33 |
要将记录数减少为每台机器的最新记录,请使用 Machine 作为键字段,并使用 Timestamp 作为排序字段(降序)。输入顺序不会影响结果,这是因为,排序选择指定了对于给定机器应返回许多行中的哪些行,最终数据输出如下所示。
| 时间戳 | 机器 | 温度 |
|---|---|---|
| 17:00:22 | 机器 A | 31 |
| 19:42:00 | 机器 B | 34 |
| 19:59:04 | 机器 C | 35 |
| 19:07:23 | 机器 X | 33 |
| 20:51:09 | 机器 Y | 36 |