1

窗格和窗口有什么区别?传入的元素被分组到窗口中。那么窗格包含什么?

我从梁文档中获取了以下代码

.of(new DoFn<String, String>() {
     public void processElement(@Element String word, PaneInfo paneInfo) {
  }})

每个元素是否属于一个窗格?还是多个窗格?需要一个简单的类比来理解窗格和窗口

4

1 回答 1

3

窗口化策略按事件时间对数据进行分区。一个元素可以属于多个窗口(滑动窗口)。

窗格由每个窗口的触发器触发。一个窗口可以发出多个窗格,具体取决于触发触发器的次数。如果没有触发器,则当窗口超出范围时,它只会触发一个窗格。

然后可以通过累积模式将每个窗格发出的数据聚合在一起。

您可以将窗口视为一个类,将窗格视为该类的一个实例。一个元素可以属于一个或多个窗口,并被窗口用来发出窗格。

更多详细信息可以在有关窗口和触发器的会话中的编程指南中找到。

当您指定一个触发器时,您还必须设置窗口的累积模式。当触发器触发时,它将窗口的当前内容作为窗格发出。由于触发器可以触发多次,因此累积模式决定了系统是在触发器触发时累积窗格还是丢弃它们。

要设置一个窗口来累积触发器触发时生成的窗格,请在设置触发器时调用.accumulatingFiredPanes()。要设置窗口以丢弃触发的窗格,请调用 .discardingFiredPanes()。

于 2021-05-03T17:05:30.813 回答