2017-11-11 219 views

回答

0

阅读数据流窗口相关数据可能是值得的。滑动时间窗口也使用数据流中的时间间隔来定义数据束;然而,随着时间窗的滑动,窗户重叠。每个窗口可能会捕获5分钟的数据,但每隔10秒就会有一个新窗口开始。滑动窗口开始的频率称为周期。 可以从“窗口”文档page,“Sliding Time Windows”子章节中收集更多详细信息。

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()); 
    ... 
}