Неясно, что вы надеетесь получить, добавив этот уникальный идентификатор, и не совсем ясны требования к его уникальности.
Но если вас беспокоит, что Flink создаст дублирующиеся записи в выходных файлах topi c из-за повторных попыток, которые происходят во время восстановления после сбоя, вы можете настроить Flink и Kafka так, чтобы этого избежать, и гарантировать одноразовое поведение.
Для достижения единовременных сквозных гарантий:
- Включить контрольную точку Flink
- Установить
Semantic.EXACTLY_ONCE
- Увеличить
transaction.max.timeout.ms
сверх значения по умолчанию (15 минут) - Установите для
isolation.level
у последующих потребителей значение read_committed
Этот подход действительно осуществляется по цене, получаемой нижестоящими потребителями Kafka, имеющими ожидаемые задержка равна интервалу контрольной точки.
Подробнее см. в документации .