连接的键控流上的coProcessFunction vs keyedCoProcessFunction

时间:2020-09-02 14:57:47

标签: apache-flink flink-streaming

在参考Flink代码示例时,我观察到使用connect运算符连接两个流时,在对键流进行操作时,coProcessFunctionkeyedCoProcessFunction几乎都可以互换且相同地扩展。 (覆盖processElement1processElement2onTimer),因此,在对键流进行操作时,将扩展CoProcessFunction与扩展keyedCoProcessFunction相比,实现{键控连接流的业务逻辑?

谢谢。

1 个答案:

答案 0 :(得分:1)

KeyedCoProcessFunctionKeyedProcessFunction是最近添加的。与非键式风格相比,区别在于Context中提供了当前键,该键被传递给各种processElement和onTimer方法。

如果您尝试在ProcessFunction或CoProcessFunction中使用键控状态或计时器,则如果您实际上处于键控上下文中,它将起作用,否则,将抛出异常。