固定窗口中的默认水印是什么?

hrirmatl  于 2021-06-24  发布在  Flink
关注(0)|答案(1)|浏览(197)

我正在读泰勒·阿基道的文章《the-world-beyond-batch-streaming-102》。对于水印,我仍然有点困惑,即关于文章中的代码:

PCollection<KV<String, Integer>> scores = input
  .apply(Window.into(FixedWindows.of(Duration.standardMinutes(2)))
               .triggering(AtWatermark()))

  .apply(Sum.integersPerKey());

它只是告诉引擎在水印处触发,但是引擎如何知道水印?据我所知,这应该是某种时间延迟用户需要说。或者引擎是如此智能以至于它试图为用户创建一个(根据一些默认策略或配置)?
非常感谢。

zhte4eai

zhte4eai1#

google dataflow(这是tyler akidau在你引用的文章中描述的)可以使用一种启发式方法来估计水印——更多细节请参见下面的答案。
另一方面,flink依赖于由数据源或水印生成器发出的显式水印。最常见的方法是假设有界延迟。

相关问题