一、keyBy 的概念

Flink 中的 keyBy 是一种将数据按照指定的 key 进行分组的操作,可以将数据按照指定的 key 进行分组,从而实现对数据的分类、汇总和聚合等操作。keyBy 操作可以将数据按照指定的 key 进行分组,从而实现对数据的分类、汇总和聚合等操作。

二、keyBy 指定 key 的方式

1、使用字段名称:可以使用字段名称来指定 key,例如 dataStream.keyBy("name"),表示按照 name 字段来分组;

2、使用字段下标:可以使用字段下标来指定 key,例如 dataStream.keyBy(0),表示按照字段下标为 0 的字段来分组;

3、使用 keySelector 函数:可以使用 keySelector 函数来指定 key,例如 dataStream.keyBy(new KeySelector<Tuple2<String, Long>, String>() {
public String getKey(Tuple2<String, Long> value) {
return value.f0;
}
}),表示按照 Tuple2 中的第一个字段来分组;

三、keyBy 的使用场景

keyBy 操作主要用于数据分组,可以实现数据的分类、汇总和聚合等操作,常用于实现统计分析、实时计算等功能,例如实时统计每个用户的访问次数,可以使用 keyBy 将数据按照用户 ID 进行分组,然后使用 sum 操作累加每个用户的访问次数,从而实现对每个用户访问次数的实时统计。