Apache Beam FixedWindows 之间的延迟

Delay between Apache Beam FixedWindows

PubSub 每秒都会收到一条消息。 Dataflow 在一分钟内使用 ReadFromPubSub 和 FixedWindows 获取此消息一次。我在 windows ~6 秒和丢失消息之间有延迟(每个 window 有 57 - 63 个事件)。如果增加 PubSub 中的消息数量,消息的散布也会增加。如何缩小 windows 之间的差距并在 window 内接收一分钟的所有消息?

Apache Beam 已修复windows 使用元素时间戳:

See docs 3.2.6. Element timestamps

对于 pubsub,有两种方法可以为元素指定时间戳:

  1. 元素被放入 PubSubtopic 的时间
  2. 用作元素时间戳的消息值。

1 是默认值,要使用 2,请使用 timestamp_attribute

所以这意味着在发布消息时,您为消息设置了 timestamp_attribute 元数据。 Fixedwindow 将默认使用 Event time triggers 如果我正确理解了您的用例,这就是您正在寻找的。