0

아파치 빔에 KafkaIO를 사용하여 여러 카프카 브로커에서 읽으려고합니다. 오프셋 관리의 기본 옵션은 kafka 파티션 자체입니다 (더 이상 kafka> 0.9에서 동물원을 사용하지 않음). 이 설정으로 작업/파이프 라인을 다시 시작할 때 중복 된 레코드 누락과 관련된 문제가 있습니다.아파치 빔 KafkaIO 외부 데이터 저장소에 대한 오프셋 관리

내가 읽은 바로는이를 처리하는 가장 좋은 방법은 외부 데이터 저장소에 대한 오프셋을 관리하는 것입니다. apache beam과 KafkaIO의 현재 버전에서이 작업을 수행 할 수 있습니까? 지금 2.2.0 버전을 사용하고 있습니다.

그리고 kafka에서 읽은 후에 BigQuery에 작성합니다. BigFery에 메시지를 삽입 한 후에 만 ​​커밋 된 메시지를 설정할 수있는 KafkaIO의 설정이 있습니까? 지금은 자동 커밋 설정 만 찾을 수 있습니다.

답변

0

데이터 흐름에서 처음부터 다시 시작하지 않고 update a job 수 있습니다. 새 작업은 마지막 체크 포인트 상태에서 재개되어 정확히 한 번만 처리됩니다. 이것은 KafkaIO 소스에서도 잘 작동합니다. Kafka 소비자 구성의 자동 커밋 옵션은 도움이되지만 다시 시작된 작업이 중복되거나 누락 된 메시지의 작은 부분을 포함 할 수 있음을 의미하는 Dataflow 내부 상태와 관련이 없습니다.

관련 문제