【问题标题】:Flink change stream window size during run timeFlink 在运行时更改流窗口大小
【发布时间】:2019-01-04 02:53:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    窗口大小不能在运行时改变。

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

    实现您自己的窗口化将是一项不小的工作,而且将资源用于计算两组窗口听起来很昂贵。

    【讨论】:

    • 感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 2022-07-08
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 2018-03-18
    • 2014-01-24
    相关资源
    最近更新 更多