例如,一个windowoperator有10个并行,有1000个不同的键,那么每个并行将处理100个键,这100个键的状态是共享的还是隔离的?
p8h8hvxi1#
在大多数情况下,在整个flink中,不同密钥的状态是隔离的。这样做是有意的,以便在重新缩放集群时可以重新硬化状态。在一个 KeyedProcessFunction ,或在 ProcessWindowFunction 对于键控窗口,无论何时访问或更新状态,上下文中都隐含一个键。如果是 KeyedProcessFunction 这是正在处理的事件或计时器的键;如果是 ProcessWindowFunction 它是与提供的iterable中的事件相关联的键。执行的任何状态访问或更新都将限定到这一个键。无法访问或修改与其他密钥关联的状态。
KeyedProcessFunction
ProcessWindowFunction
1条答案
按热度按时间p8h8hvxi1#
在大多数情况下,在整个flink中,不同密钥的状态是隔离的。这样做是有意的,以便在重新缩放集群时可以重新硬化状态。
在一个
KeyedProcessFunction
,或在ProcessWindowFunction
对于键控窗口,无论何时访问或更新状态,上下文中都隐含一个键。如果是KeyedProcessFunction
这是正在处理的事件或计时器的键;如果是ProcessWindowFunction
它是与提供的iterable中的事件相关联的键。执行的任何状态访问或更新都将限定到这一个键。无法访问或修改与其他密钥关联的状态。