apache beam 窗格和窗口之间的区别

big*_*nty 1 google-cloud-dataflow apache-beam apache-beam-internals

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

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

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

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

小智 6

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

\n

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

\n

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

\n

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

\n

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

\n
\n

当指定触发器时,还必须设置window\xe2\x80\x99s累加模式。当触发器触发时,它会将窗口的当前内容作为窗格发出。由于触发器可以多次触发,因此累积模式决定系统是在触发器触发时累积窗玻璃还是丢弃它们。

\n
\n
\n

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

\n
\n