在参考Flink代码示例时,我观察到使用connect
运算符连接两个流时,在对键流进行操作时,coProcessFunction
和keyedCoProcessFunction
几乎都可以互换且相同地扩展。 (覆盖processElement1
,processElement2
和onTimer
),因此,在对键流进行操作时,将扩展CoProcessFunction
与扩展keyedCoProcessFunction
相比,实现{键控连接流的业务逻辑?
谢谢。
答案 0 :(得分:1)
KeyedCoProcessFunction
和KeyedProcessFunction
是最近添加的。与非键式风格相比,区别在于Context
中提供了当前键,该键被传递给各种processElement和onTimer方法。
如果您尝试在ProcessFunction或CoProcessFunction中使用键控状态或计时器,则如果您实际上处于键控上下文中,它将起作用,否则,将抛出异常。