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,有两种方法可以为元素指定时间戳:
- 元素被放入 PubSubtopic 的时间
- 用作元素时间戳的消息值。
1 是默认值,要使用 2,请使用 timestamp_attribute。
所以这意味着在发布消息时,您为消息设置了 timestamp_attribute 元数据。 Fixedwindow 将默认使用 Event time triggers 如果我正确理解了您的用例,这就是您正在寻找的。
PubSub 每秒都会收到一条消息。 Dataflow 在一分钟内使用 ReadFromPubSub 和 FixedWindows 获取此消息一次。我在 windows ~6 秒和丢失消息之间有延迟(每个 window 有 57 - 63 个事件)。如果增加 PubSub 中的消息数量,消息的散布也会增加。如何缩小 windows 之间的差距并在 window 内接收一分钟的所有消息?
Apache Beam 已修复windows 使用元素时间戳:
See docs 3.2.6. Element timestamps
对于 pubsub,有两种方法可以为元素指定时间戳:
- 元素被放入 PubSubtopic 的时间
- 用作元素时间戳的消息值。
1 是默认值,要使用 2,请使用 timestamp_attribute。
所以这意味着在发布消息时,您为消息设置了 timestamp_attribute 元数据。 Fixedwindow 将默认使用 Event time triggers 如果我正确理解了您的用例,这就是您正在寻找的。