Google cloud dataflow Dataflow.ElementCount至少(1)个,带有.pastEndOfWindow()保证
如果我有这样一个窗口:Google cloud dataflow Dataflow.ElementCount至少(1)个,带有.pastEndOfWindow()保证,google-cloud-dataflow,Google Cloud Dataflow,如果我有这样一个窗口: .apply(Window .<String>into(Sessions .withGapDuration(Duration.standardSeconds(10))) .triggering(AfterWatermark .pastEndOfWindow() .withEarlyFirings(AfterPane.elementCountAtLeast(1)) .withLate
.apply(Window
.<String>into(Sessions
.withGapDuration(Duration.standardSeconds(10)))
.triggering(AfterWatermark
.pastEndOfWindow()
.withEarlyFirings(AfterPane.elementCountAtLeast(1))
.withLateFirings(AfterPane.elementCountAtLeast(1))));
.apply(窗口)
.进入(会议)
.withGapDuration(持续时间.标准秒(10)))
.触发(后水印)
.pastEndOfWindow()
.带早期点火(后窗格。元件计数至少(1))
.最晚点火(后窗格。元素计数至少(1));
它从Pub/Sub接收3个元素
是否保证该窗口将精确触发4次
是否保证将有:
- 时间窗格上正好有一个(由通过窗口末尾的水印触发)
- 正好3个其他窗格(早或晚),每个元素正好1个
如果延迟元素进入“按时”窗格中,它们将不会作为未来窗格的一部分重新激发(尽管如果累积激发的窗格,它们将继续被纳入结果中)。只是一个澄清-什么是
ClosingBehavior
控制?在本例中,在延迟窗格或在.withAllowedLateness()
之后生成的另一个窗格之前触发的ON_TIME窗格已从中通过,它似乎是针对.withAllowedLateness()
的。如果是这种情况,即使没有新的数据,我也可以强制使用ON_时间窗格吗?ClosingBehavior
控制最终窗格(PaneInfo
中的isFinal
)。当前的实现应该保证一个ON_TIME
窗格,因为您有一个AfterWatermark
触发器——它是否为空取决于元素如何划分为推测窗格和延迟窗格。