Управление смещением Apache Beam KafkaIO во внешние хранилища данных

Я пытаюсь читать от нескольких брокеров kafka, используя KafkaIO на луче apache. Параметр по умолчанию для управления смещением - это сам раздел kafka (больше не используется zookeper из kafka> 0.9). При такой настройке, когда я перезапускаю задание / конвейер, возникает проблема с повторяющимися и отсутствующими записями.

Из того, что я читал, лучший способ справиться с этим - управлять смещением к внешним хранилищам данных. Возможно ли это сделать с текущей версией apache beam и KafkaIO? Сейчас я использую версию 2.2.0.

И, прочитав из кафки, запишу в BigQuery. Есть ли в KafkaIO настройка, в которой я могу установить зафиксированное сообщение только после того, как вставлю сообщение в BigQuery? Я могу найти только настройку автоматической фиксации прямо сейчас.


person Eduard Chai    schedule 23.12.2017    source источник


Ответы (1)


В Dataflow вы можете обновить задание, а не перезапускать его с нуля. Новое задание возобновляется из состояния последней контрольной точки, что обеспечивает однократную обработку. Это также работает для источника KafkaIO. Параметр автоматической фиксации в конфигурации потребителя Kafka помогает, но он не является атомарным с внутренним состоянием Dataflow, что означает, что перезапущенное задание может иметь небольшую долю повторяющихся или отсутствующих сообщений.

person Raghu Angadi    schedule 10.01.2018