在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()
从第一次看到第一个元素时它是每次都触发还是隐式批处理元素?因为在每个元素上触发都会使系统过载。
答案 0 :(得分:5)
使用这两个触发器,窗口将被触发一次,并且将丢弃任何剩余的元素。您可以使用Repeatedly.forever(...)
多次触发。
关于您的具体问题,如果元素大约在同一时间到达,则会发生少量批处理。
假设你的意思是以下,那么是的,第二个会更频繁地触发,并可能使系统超载。
Repeatedly.forever(AfterProcessingTime.pastFirstElementInPane()
.plusDelayOf(Duration.standardMinutes(15)))
VS
Repeatedly.forever(AfterProcessingTime.pastFirstElementInPane())