Apache Beam 中的会话 window gapDuration

Session window gapDuration in Apache beam

我想了解会话 window 在 Apache Beam 中是如何工作的。假设我有以下情况。

  1. 我指定了 gapDuration 为 4 小时的会话 window。
  2. 现在发生键为 abc 的事件 1。为此密钥创建了一个新会话,该会话现在将持续 + 4 小时。
  3. 键为 abc 的事件 2 发生在现在 + 3 小时。所以属于同一个会话
  4. 我将触发器设置为 AfterWatermark.pastEndOfWindow()。

此触发是否会在现在 + 4 小时发生,或者会话会因发生在现在 + 3 小时的事件而延长,因此触发会在现在 + 3 + 4 小时发生?

会话 window 将在 now + 3 + 4 时触发(即,在 gapSize 一段时间内没有该键的新元素之后)。

会话 windows 被称为“可合并 windows”,因为它们可以扩展并且没有固定大小,如 FixedWindows 或 SlidingWindows。

如果您想了解更多信息,请参阅 talk 我在 Apache Beam 学习月

中提供的关于 Windows 的内容