使用 GroupByKey,每个键都有自己的 window
Using GroupByKey with having each key in its own window
我有无限的数据源(Kafka 流)作为我的 Beam 作业的输入。
数据特征:
- 它们是元素组(组大小在 5-20 个元素之间)。
- 每个组的密钥是一个唯一标识符,仅用于该组。
- 组中第一个元素和最后一个元素之间的最大时间差小于 2 秒。
我要执行的是:
- 通过键将它们组合在一起
- 单独处理每个组。
我发现我可以使用 GroupByKey 函数来实现这个。
但是,由于它是一个无限源,我需要应用 windowing 否则 GroupBy 将永远无法完成。
问题是,我找不到一个 windowing 函数可以让我在不截断数据的情况下做到这一点。
我的问题:有没有一种方法可以让我将每个键分组到自己的 window 中,并在一定时间后关闭它?非常感谢
您可能会尝试使用 Session
windows,其中每个会话都将对应于您输入数据集中的组。
我有无限的数据源(Kafka 流)作为我的 Beam 作业的输入。
数据特征:
- 它们是元素组(组大小在 5-20 个元素之间)。
- 每个组的密钥是一个唯一标识符,仅用于该组。
- 组中第一个元素和最后一个元素之间的最大时间差小于 2 秒。
我要执行的是:
- 通过键将它们组合在一起
- 单独处理每个组。
我发现我可以使用 GroupByKey 函数来实现这个。
但是,由于它是一个无限源,我需要应用 windowing 否则 GroupBy 将永远无法完成。
问题是,我找不到一个 windowing 函数可以让我在不截断数据的情况下做到这一点。
我的问题:有没有一种方法可以让我将每个键分组到自己的 window 中,并在一定时间后关闭它?非常感谢
您可能会尝试使用 Session
windows,其中每个会话都将对应于您输入数据集中的组。