Разделяются ли состояния разных ключей в оконном операторе Flink? - PullRequest
0 голосов
/ 26 февраля 2020

Например, у windowOperator есть 10 параллелизмов, и есть 1000 различных ключей, тогда каждый параллелизм будет обрабатывать 100 ключей, являются ли эти 100 состояний ключей общими или изолированными?

1 Ответ

0 голосов
/ 26 февраля 2020

По большей части, во всем Флинке состояние для разных ключей изолированно. Это сделано преднамеренно, так что состояние может быть изменено при изменении масштаба кластера.

В KeyedProcessFunction или ProcessWindowFunction для окна с ключом, когда вы обращаетесь или обновляете состояние, существует ключ неявно в контексте. В случае KeyedProcessFunction это ключ для обрабатываемого события или таймера; в случае ProcessWindowFunction это ключ, связанный с событиями в предоставленной итерации. Любой доступ к состоянию или выполненные обновления будут ограничены этим одним ключом. Нет способа получить доступ или изменить состояние, связанное с другими ключами.

...