将ProcessWindowFunction与Flink中的广播流连接的正确方法是什么?

问题描述 投票:0回答:1

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

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

我需要将来自另一个流的状态发送到ProcessWindowFunction运算符(最后一个)。通常,我会在之前进行连接,并实现proceessElementprocessBroadcastElement。但是因为我将WindowProcessFuction传递给.aggregate作为第二个参数,所以我无法做到这一点。您在这里对我有什么选择?

java stream apache-flink flink-streaming
1个回答
0
投票

Flink不支持将广播流连接到窗口运算符。我应该建议使用KeyedBroadcastProcessFunction而不是窗口,并实现自己的窗口。通常,这并不是特别困难。有关可以帮助您入门的示例,请参见https://stackoverflow.com/a/59823254/2000823

© www.soinside.com 2019 - 2024. All rights reserved.