6

在 Dataflow 流媒体世界中。

当我说:

Window.into(FixedWindows.of(Duration.standardHours(1)))
  .triggering(AfterProcessingTime.pastFirstElementInPane()
      .plusDelayOf(Duration.standardMinutes(15))

是在一小时的固定窗口内,触发器在看到第一个元素后等待或批处理元素。

但是当我说:

Window.into(FixedWindows.of(Duration.standardHours(1)))
  .triggering(AfterProcessingTime.pastFirstElementInPane()

它是从第一次看到第一个元素开始每次触发还是隐式批处理元素?因为在每个元素上触发都会使系统过载。

4

1 回答 1

6

使用这两个触发器,窗口将被触发一次,并且任何剩余的元素都将被丢弃。您可以使用Repeatedly.forever(...)触发多次。

关于您的具体问题,如果元素大约在同一时间到达,则会发生少量批处理。

假设您的意思是以下,那么是的,第二个将更频繁地触发,并且可能会使系统过载。

Repeatedly.forever(AfterProcessingTime.pastFirstElementInPane()
    .plusDelayOf(Duration.standardMinutes(15)))

对比

Repeatedly.forever(AfterProcessingTime.pastFirstElementInPane())
于 2017-05-10T20:25:51.540 回答