Flink不支持将广播流连接到窗口运算符。我应该建议使用KeyedBroadcastProcessFunction而不是窗口,并实现自己的窗口化。通常情况下,这并不特别困难。看见https://stackoverflow.com/a/59823254/2000823举一个可以帮助你入门的例子。
我有一个运行多个模型的flink管道,因此窗口显示如下:
DataStream<WindowDeviationResult> aggregatedWindow = keyedStream
.timeWindow(Time.seconds(window_duration))
.aggregate( model.getWindowAgreggator(),
model.getWindowProcessor());
我需要将来自另一个流的状态发送到ProcessWindowFunction操作符(最后一个(。通常,我会在之前进行连接,并实现processElement和processBroadcastElement。但因为我将WindowProcessFution作为第二个参数传递给.agregate,所以我不能这样做。你认为我有什么选择?