Apache beam 使用GroupByKey时,每个键都位于其自己的窗口中

Apache beam 使用GroupByKey时,每个键都位于其自己的窗口中,apache-beam,Apache Beam,我有一个无限的数据源Kafka stream作为我的beam作业的输入 数据的特点: 它们是元素组大小在5-20个元素之间的组。 每个组的密钥都是唯一标识符,仅用于该组。 组中第一个元素和最后一个元素之间的最大时间差小于2秒。 我想表演的是: 按键将它们组合在一起 分别处理每组。 我发现我可以使用GroupByKey函数来实现这一点 但是,由于它是一个无限源,我需要应用窗口,否则GroupBy将永远无法完成 问题是,我找不到一个窗口函数,它允许我在不截断数据的情况下进行操作 我的问题:有没有一种

我有一个无限的数据源Kafka stream作为我的beam作业的输入

数据的特点:

它们是元素组大小在5-20个元素之间的组。 每个组的密钥都是唯一标识符,仅用于该组。 组中第一个元素和最后一个元素之间的最大时间差小于2秒。 我想表演的是:

按键将它们组合在一起 分别处理每组。 我发现我可以使用GroupByKey函数来实现这一点

但是,由于它是一个无限源,我需要应用窗口,否则GroupBy将永远无法完成

问题是,我找不到一个窗口函数,它允许我在不截断数据的情况下进行操作


我的问题:有没有一种方法可以让我在自己的窗口中分组每个键,并在一定时间后关闭它?非常感谢

您可以尝试使用会话窗口,其中每个会话都对应于输入数据集中的组