我有一个流被FlinkKafkaConsumer消耗,它将被加入 与另一个用于定义窗口大小的流,例如 时间。毫秒(10000)。
如何在运行时将窗口大小更改为Time.milliseconds(20000)?
Stream1.join(Stream2)
.where(new SingleValueSensorKeySelector())
.equalTo(new GPSKeySelector())
.window(TumblingEventTimeWindows.of(Time.milliseconds(10000)))
.apply(joinStreamFunc).addSink(kafkaProducer);
答案 0 :(得分:0)
无法在运行时更改窗口大小。
您可以做几件事情,尽管都不是很吸引人。您可以在某种ProcessFunction之上实现自己的窗口。或者,您可以复制所涉及的流,让两种窗口并行进行,然后动态控制将哪个窗口的结果发送到接收器。
实施您自己的窗口化将是一项不平凡的工作,并且花费资源来计算两组窗口听起来很昂贵。