时间窗口关闭时,最终结果会立即发出还是有新记录出现时才发出?
val builder = StreamsBuilder();
builder.stream<String,Double>(inputTopic, Consumed.with(Serdes.String(),
Serdes.Double()))
.groupByKey()
.windowedBy(TimeWindows.of(Duration.ofSeconds(15)).grace(Duration.ZERO))
.count()
.suppress(Suppressed.untilWindowCloses(unbounded())))
.toStream()
.print(Printed.toSysOut())
如何在时间窗口关闭时立即发出最终结果?
答案 0 :(得分:0)
如何在时间窗口关闭时立即发出最终结果?
时间窗口关闭时,最终结果将立即发出。
或者当有新记录出现时发出
但是,只有在处理时间戳大于窗口关闭时间的记录之后,才能安全地关闭时间窗口。
无法根据壁钟时间安全关闭窗口-suppress()
仅基于事件时间,并且事件时间只能处理高级记录。
答案 1 :(得分:0)
我遇到了同样的问题,即直到出现新消息,最后一个窗口才发出。 我最终做了一个愚蠢的卡夫卡制作人,每分钟用一个虚拟密钥“ hb”向该主题发布一个虚拟消息,然后发出最后一个窗口结果。