강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

일단해님의 프로필 이미지
일단해

작성한 질문수

카프카 완벽 가이드 - 커넥트(Connect) 편

kafkacat을 이용하여 개별 Source Connector의 offset을 리셋하기

재 질문! 다른 connector가 동일 토픽 사용

작성

·

16

·

수정됨

0

답변 감사합니다.

답변을 보다 보니 또 새로운 질문이 생겨서 다시 문의 드립니다.

  1. debezium connector를 새로 만들어서 빈로그를 처음부터 다시 읽어 진행한다고 하면

토픽을 같은거를 써도 되나요?
예를 들어 a connector 만들면서 a topic 진행했는데

a connector new 로 만들면서 기존에 있던 a topic에 넣어 라고 해도 에러가 안 나는지 궁금합니다. (이렇게 하는 이유는 굳이 jdbc connector를 새로 만들고 싶지 않아서 입니다)

 

 

  1. 그리고 실제 해보고 있는데 생각보니까 선생님께서는 offset을 리셋하고 커넥터를 재기동하고 데이터를 다시 해당 디렉토리에 넣은 거로 확인됩니다. 이와 연관되어 mysql debezium의 경우 binlog의 특정 포지션으로 지정했는데 해당 포지션 이후부터 다시 토픽에 넣는 게 아니라 새로 들어오는 로그에 대해서만 토픽에 넣는 것으로 확인됩니다. 기존에 있던 로그 내용에 대해서는 따로 진행을 안 하는 거 같아서 왜 그럴까요?

     

 

  1. 커넥터 snapshot.mode 옵션은 no_data 나 initial 모드나 상관없이 offset reset이 가능한 걸까요?

답변 2

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

먼저 offset reset이 완전 처음부터 다시 reset하고 수행하는 것을 말하는지요? 아님 특정 bin position으로 지정하여 수행하는 것을 의미하는 건지요? 아래는 먼저 답변입니다.

  1. 네, 상관없습니다. 다만 토픽내에서 데이터 중복, 타겟 시스템의 PK 중복 Insert 오류등의 문제가 발생할 경우 원인을 찾아야 하는데, 이 경우 어떤 원인인지 보다 쉽게 찾을 수 있는게 기존 topic에 중복된 데이터로 찾는게 좋을지, 새로운 topic에 데이터로 찾는게 좋을 지 판단하시면 좋을 것 같습니다. CDC의 경우 한번 데이터가 꼬이면(?) 문제 해결이 쉽지 않아서 가급적 기존 TOPIC을 지우고 새로운 TOPIC으로 하는게 더 좋을 것 같습니다.

  1. 질문이 잘 이해되지 않습니다. 먼저

     

    선생님께서는 offset을 리셋하고 커넥터를 재기동하고 데이터를 다시 해당 디렉토리에 넣은 거로 확인됩니다. =>해당 디렉토리가 어디를 말씀하시는 건가요?

     

    그리고 실제 해봤다는게, 어떤 작업을 하신 건지, 보다 상세히 수행 작업(명령어등을 포함)을 기재 부탁드립니다.

  1. target 시스템과 source 시스템이 현재 데이터가 동일하다면 initial을 사용하지 않고, no_data를 사용해도 됩니다. 그렇지 않다면 initial을 사용하십시요

     

     

    감사합니다.

     

0

안녕하세요, 인프런 AI 인턴입니다. 일단해님.

Debezium Connector와 Kafka Connect는 매우 유연한 시스템으로, 빈 로그(binlog)를 처음부터 읽어도 기존 토픽에 데이터를 적재하는 것이 가능합니다. 하지만 몇 가지 주의 사항이 있습니다:

  1. 기존 데이터 중복 문제: 새로운 Connector가 같은 토픽에 데이터를 적재하게 되면 이미 적재된 데이터와 중복될 수 있습니다. 따라서 데이터를 새로 적재할 때 중복 처리를 어떻게 할지 고려하는 것이 중요합니다.

  2. 토픽 데이터 무결성: 동일 토픽에 여러 Connector가 데이터를 적재할 경우, 데이터의 무결성이나 일관성을 유지하기 위한 방법이 필요할 수 있습니다. 특히 커넥터가 동일한 구조의 데이터를 가지고 있다면 문제가 없겠지만, 그렇지 않다면 데이터 구조에 대한 관리가 필요합니다.

  3. 정합성 고려: 특정 정합성을 유지해야 하는 시스템이라면, 기존 데이터를 삭제하고 다시 적재할 것인지, 아니면 중복 데이터에 대해 별도의 처리를 할 것인지에 대한 전략이 필요합니다.

이러한 점들을 고려하여 config 파일을 조정하고, 필요한 테스트를 거쳐 진행하는 것이 좋습니다.

아래에서 유사한 질문 사례들을 확인해 보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

일단해님의 프로필 이미지
일단해

작성한 질문수

질문하기