Kafka Streams(禁止):按超时关闭TimeWindow

时间:2019-02-26 16:41:43

标签: apache-kafka apache-kafka-streams suppress windowed

我有以下代码可根据事件时间每小时汇总数据

KStream<Windowed<String>, SomeUserDefinedClass> windowedResults = inputStream
.groupByKey(Grouped.with(Serdes.String(), new SomeUserDefinedSerde<>()))
.windowedBy(TimeWindows.of(Duration.ofMinutes(60)).grace(Duration.ofMinutes(15)))
.aggregate
(
    // do some aggregation
)
.suppress(Suppressed.untilTimeLimit(Duration.ofMinutes(75), Suppressed.BufferConfig.unbounded()))
.toStream();

问题是,如果我没有接收到具有相同键和时间戳晚于时限+宽限期的数据,则无法关闭时间窗口并发出结果。

我想知道在给定时间过去之后(不用等待相同键的任何新数据),可以用来确保关闭窗口并发出数据的替代方法。

是否有一个选项/功能可以基于实时而不是事件时间来设置直到时间限制参数?

注意:这个问题不是关于为什么不关闭TimeWindow的问题,而是关于在没有新数据的情况下如何关闭它的问题

0 个答案:

没有答案