我有两个无界的每个,有一个2分钟的窗口和AfterWatermark.pastEndOfWindow()
触发器。检查外部联接的结果后,似乎窗口没有对齐。 Beam对齐连接左侧的数据,但在4分钟的重叠间隔内获取右侧数据:
Stream A |--| (observed range after join from window 1)
|--| (observed range after join from window 2)
|--| (observed range after join from window 3)
Stream B |----| (observed range after join from window 1)
|----| (observed range after join from window 2)
|----| (observed range after join from window 3)
因此,例如,窗口1具有来自流A的事件0-2时间段(如预期的)和来自流B的0-4时间段的事件,并且在窗口2中,我从流A时间段2-获得事件4和流B,时间段2-6。
Beam如何决定数据进入哪个窗口,来自两个未对齐的固定窗口的连接?
答案 0 :(得分:0)
如果您使用CoGroupByKey
加入PCollection
s,则beam大致要求它们具有相同的窗口(实际的相等性取决于WindowFn#verifyCompatibility
的实现)。因此,您上面提到的情况不会发生。