在Flink中,连接ProcessWindowFunction和广播流的正确方法是什么



我有一个运行多个模型的flink管道,因此窗口显示如下:

DataStream<WindowDeviationResult> aggregatedWindow = keyedStream
.timeWindow(Time.seconds(window_duration))
.aggregate( model.getWindowAgreggator(), 
model.getWindowProcessor());

我需要将来自另一个流的状态发送到ProcessWindowFunction操作符(最后一个(。通常,我会在之前进行连接,并实现processElementprocessBroadcastElement。但因为我将WindowProcessFution作为第二个参数传递给.agregate,所以我不能这样做。你认为我有什么选择?

Flink不支持将广播流连接到窗口运算符。我应该建议使用KeyedBroadcastProcessFunction而不是窗口,并实现自己的窗口化。通常情况下,这并不特别困难。看见https://stackoverflow.com/a/59823254/2000823举一个可以帮助你入门的例子。

相关内容

  • 没有找到相关文章

最新更新