运行期间Flink更改流窗口大小

时间:2019-01-03 00:15:14

标签: apache-flink flink-streaming

我有一个流被FlinkKafkaConsumer消耗,它将被加入 与另一个用于定义窗口大小的流,例如 时间。毫秒(10000)。

如何在运行时将窗口大小更改为Time.milliseconds(20000)?

Stream1.join(Stream2) 
     .where(new SingleValueSensorKeySelector()) 
     .equalTo(new GPSKeySelector()) 
     .window(TumblingEventTimeWindows.of(Time.milliseconds(10000))) 
     .apply(joinStreamFunc).addSink(kafkaProducer);

1 个答案:

答案 0 :(得分:0)

无法在运行时更改窗口大小。

您可以做几件事情,尽管都不是很吸引人。您可以在某种ProcessFunction之上实现自己的窗口。或者,您可以复制所涉及的流,让两种窗口并行进行,然后动态控制将哪个窗口的结果发送到接收器。

实施您自己的窗口化将是一项不平凡的工作,并且花费资源来计算两组窗口听起来很昂贵。