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