Apache Beam管道中的大窗口



我有一个关于apache beam中窗口大小的高级问题。大多数流示例显示使用相对较小窗口大小的光束。我们的用例包括查看包含15到30天窗口的数据。

我的问题是,有没有人预见到这么大的窗户会有什么坏处?

如果您有一个15天的窗口,这将需要在最终生成答案之前缓冲数据15天。大多数使用流式管道的人都对延迟低于此值感兴趣。

你可以考虑使用偏移量较低的滑动窗口,例如滑动窗口每天产生过去15天的数据。如果窗口大小与滑动持续时间的比率很大,则需要每个键存储许多中间值(例如,15天/1小时的滑动窗口将需要15*24个中间值)。

您还可以使用触发器在窗口"完成"之前获得推测数据。使用触发器,您可以将数据N天放入整个窗口,不断增长,直到15天后窗口最终完成。这需要在"早期"处理时更加小心。结果,以避免重复计算(例如,一个不想包括发出"天1 sum"day 1-2 sum;到相同的聚合)。

最新更新