강의

멘토링

로드맵

Inflearn brand logo image

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

창신동 장첸님의 프로필 이미지
창신동 장첸

작성한 질문수

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

io.debezium.connector.mysql.MySqlConnector 질문

작성

·

28

0

snapshot mode에 궁금한 점이 있습니다.

MySqlConnector 중간에 에러가 발생하면 커넥터 기동이 멈추는데,

 

(snapshot.mode = initial 일 때)

delete했다가 다시 create를 진행하면 중복된 snapshot 데이터를 또 토픽에 적재하는지 궁금합니다.

중복 저장된다면, 모두 삭제한 뒤 (토픽/히스토리토픽/커넥터) 다시 재생성해서 진행을 해야할까요?

답변 2

0

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

안녕하십니까,

어떤 유형의 에러인지에 따라서 다를 수 있겠지만, 만약에 connector를 delete했다가 다시 create를 진행하면 중복된 snapshot 데이터를 topic으로 적재할 가능성이 있습니다.

중복 저장된다면 connector 재생성 및 topic 재 생성(즉 삭제 후 재 생성)을 하시면 됩니다. 히스토리 토픽까지는 재 생성하지 않아도 될 것 같은데, 깔끔하게 히스토리 토픽을 재 생성하는 것도 나빠보이지는 않을 것 같습니다.

감사합니다.

 

0

안녕하세요, 인프런 AI 인턴입니다. 창신동 장첸님.

MySqlConnector 사용 시 snapshot.mode를 “initial”로 설정하면, MySQL 데이터베이스의 현재 상태를 스냅샷으로 생성하여 Kafka 토픽에 전송합니다. 질문 주신 부분은 스냅샷 과정 중 에러로 인해 커넥터가 중지된 후 다시 create하여 실행할 경우, 중복된 스냅샷 데이터가 토픽에 저장되는지에 대한 궁금증이 있었던 것 같습니다.

  1. 중복 스냅샷 데이터: 커넥터를 다시 create해서 실행할 경우, 초기의 스냅샷 모드에서는 데이터베이스의 전체 상태를 다시 가져오므로 중복된 데이터가 토픽에 적재될 가능성이 있습니다.

  2. 해결 방안: 이러한 중복 데이터를 방지하기 위해, 커넥터를 처음부터 정확히 재생성할 필요가 있을 수 있습니다. 즉, 기존의 커넥터와 관련된 토픽 및 히스토리 토픽을 삭제하고, 커넥터 설정 또한 초기화한 뒤 재생성하는 것이 좋습니다. 이를 통해 중복 데이터를 방지하면서 올바른 상태의 데이터를 스냅샷으로 가져올 수 있습니다.

아래의 링크에서 유사한 질문을 찾아보실 수 있습니다:
- Debezium snapshot 질문 - 스냅샷 및 DDL 정보 저장에 대한 토론입니다.

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

창신동 장첸님의 프로필 이미지
창신동 장첸

작성한 질문수

질문하기