Apache flink 为什么我们需要在flink中由操作员输入多个密钥?

Apache flink 为什么我们需要在flink中由操作员输入多个密钥?,apache-flink,flink-streaming,Apache Flink,Flink Streaming,KeyedProcessFunction要求前一个运算符为keyedBy运算符 当我尝试使用两个KeyedProcessFunction处理一个KeyedStream时,为什么第二个函数要求我再次应用keyedBy操作。流不应该已经被键分割了吗 var stream = env.addSource(new FlinkKafkaConsumer[Event]("flinkkafka", EventSerializer, properties)) var processed_stream_1 =

KeyedProcessFunction要求前一个运算符为keyedBy运算符

当我尝试使用两个KeyedProcessFunction处理一个KeyedStream时,为什么第二个函数要求我再次应用keyedBy操作。流不应该已经被键分割了吗

var stream = env.addSource(new FlinkKafkaConsumer[Event]("flinkkafka", EventSerializer, properties))


var processed_stream_1 = stream
                         .keyBy("keyfield") 
                         .process(new KeyedProcess1())

var processed_stream_2 = processed_stream_1
                         .process(new KeyedProcess2()) //this doesn't work

对于某些Flink操作,例如windows和process函数,输入和输出记录之间存在某种断开连接,Flink无法保证发出的记录仍然遵循原始密钥分区。如果您确信这样做是安全的,那么可以使用第二个键盘,而不是第二个键盘,以避免不必要的网络混乱

对于某些Flink操作,例如windows和process函数,输入和输出记录之间存在某种断开连接,Flink无法保证发出的记录仍然遵循原始的密钥分区。如果您确信这样做是安全的,那么可以使用第二个键盘,而不是第二个键盘,以避免不必要的网络混乱