我们了解withLateFirings中提到的示例中的codelabs。它对withEarlyFirings的真正含义是什么?
答案 0 :(得分:0)
在数据流中读取关于窗口化的相关数据可能是值得的。滑动时间窗口还使用数据流中的时间间隔来定义数据包;然而,随着滑动时间窗口,窗口重叠。每个窗口可能会捕获五分钟的数据,但每隔十秒就会启动一个新窗口。滑动窗口开始的频率称为周期。 更多细节可以从" Windowing"文档page,"滑动时间Windows"分章。
答案 1 :(得分:0)
水印是系统关于该窗口的所有事件何时到达的概念。早期发射允许在水印之前发出早期的推测结果。
可以在this article中找到一个非常有趣的动画示例。例如,以下代码段每分钟提供早期更新:
PCollection<KV<String, Integer>> scores = input
.apply(Window.into(FixedWindows.of(Duration.standardMinutes(2)))
.triggering(
AtWatermark()
.withEarlyFirings(AtPeriod(Duration.standardMinutes(1)))
.withLateFirings(AtCount(1))))
.apply(Sum.integersPerKey());
如果你想玩弄它,你也可以使用getTiming()获取每个被激活窗格的时间。 PaneInfo docs
@ProcessElement
public void processElement(ProcessContext c) throws Exception {
String timing = c.pane().getTiming().toString());
...
}