【发布时间】:2021-11-25 02:31:30
【问题描述】:
我有一个关于 Apache Beam 中窗口大小的高级问题。大多数流式传输示例显示使用具有相对较小窗口大小的光束。我们的用例涉及查看包含 15 到 30 天窗口的数据。
我的问题是,有没有人预见到有这么大的窗户会有什么缺点?
【问题讨论】:
标签: apache-beam
我有一个关于 Apache Beam 中窗口大小的高级问题。大多数流式传输示例显示使用具有相对较小窗口大小的光束。我们的用例涉及查看包含 15 到 30 天窗口的数据。
我的问题是,有没有人预见到有这么大的窗户会有什么缺点?
【问题讨论】:
标签: apache-beam
如果您有 15 天的窗口,则需要将数据缓冲 15 天,然后才能最终得出答案。大多数拥有流管道的人都对低于此的延迟感兴趣。
您可以考虑使用偏移量较低的滑动窗口,例如sliding windows 每天生成过去 15 天的数据。如果窗口大小与滑动持续时间的比率很大,这需要每个密钥存储许多中间体(例如,15 天/1 小时的滑动窗口需要 15*24 个中间体)。
您还可以使用triggers 在窗口“完成”之前获取推测数据。使用触发器,您可以在完整窗口中获取数据 N 天,并不断增长,直到 15 天后窗口最终完成。这需要在处理“早期”结果时更加小心,以避免重复计算(例如,不想将发出的“第 1 天总和”和“第 1-2 天总和”包含在同一个聚合中)。
【讨论】: