작성
·
28
답변 2
1
안녕하십니까,
offset reset이 connector가 읽어 들인 binlog를 아예 처음부터 다시 읽어 들이는 것을 의미하시는 건지요? 만약 그렇다면 기존 connector를 삭제하시고, connector의 이름을 새롭게 부여해서 다시 만드시면 됩니다. 예를 들어 "name":
mysql_cdc_oc_source 이라면 "name":
mysql_cdc_oc_source_new로 기존에 없던 이름으로 다시 만들어 주십시요. 이게 잘 안되면 __connect_offsets 토픽을 삭제하시면 됩니다.
로그 경로들이 예전과 같지 않다는 의미가 뭔지요? 중요한 건 테이블의 현재 데이터로 initial load를 한 뒤에 binlog는 모두다 순차적으로 보관이 되어있는 상태가 되어야 합니다.
음, kafkacat으로 debezium source connect를 위해서 offset을 수정해 보지는 않았지만, 안될 이유는 없어 보입니다. 다만 __connect_offsets에 connect명, 서버명:binlog 파일명, position 값 형태로 기록이 되니 이걸 잘 수정하면 될 것도 같습니다(다만 제가 해보진 않았습니다 ^^;;)
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 일단해님.
디비지움(Debezium) 커넥터는 Kafka Connect의 기능 중 하나로, Change Data Capture(CDC)를 통해 데이터베이스의 변경 사항을 Kafka로 스트리밍합니다. 이를 위해, Kafka offsets를 사용하여 소비자가 어딘가에서 읽기를 중단하고 다시 시작할 수 있는 기능을 제공하고 있습니다.
1-1. 디비지움의 오프셋 리셋 가능 여부:
디비지움은 Kafka의 오프셋을 사용하여 데이터를 읽고, 오프셋을 리셋할 수 있는 기능이 제한적으로 가능하지만 몇 가지 주의할 점이 있습니다. 특히, MySQL 등 데이터 소스의 binlog(바이너리 로그) 파일이 이전과 달라진 경우, 기록된 오프셋에 접근이 어려울 수 있습니다. 이 경우, 특정 오프셋으로 복구하려면 위험 요소가 있어서 상세한 조정과 전문적인 지식이 필요할 수 있습니다.
1-2. 디비지움으로 MySQL 특정 지점부터 읽기:
디비지움은 특정 지점(binlog 파일 및 위치)부터 읽기를 시작하도록 설정할 수 있습니다. 이를 위해서는 offset
설정 값을 직접 조정해야 합니다. 하지만, 상세한 설정 및 조정은 MySQL의 현재 상태와 binlog 파일의 접근 가능성에 따라 복잡할 수 있습니다. 이를 위해 충분한 주의와 사전 검토가 필요합니다.
관련 기존 답변 URL:
- “binlog와 offset 관련 추가 질문드립니다”: 이 답변에서 binlog 파일의 관리와 관련한 사항을 논의하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 감사합니다.
답변을 보다 보니 또 새로운 질문이 생겨서 다시 문의 드립니다.
debezium connector를 새로 만들어서 빈로그를 처음부터 다시 읽어 진행한다고 하면
토픽을 같은거를 써도 되나요?
예를 들어 a connector 만들면서 a topic 진행했는데
a connector new 로 만들면서 기존에 있던 a topic에 넣어 라고 해도 에러가 안 나는지 궁금합니다. (이렇게 하는 이유는 굳이 jdbc connector를 새로 만들고 싶지 않아서 입니다)
실습에서는 kcat 활용해서 오프셋을 0 으로만 지정했던 거 같은데 옵션을 주면 binlog position 으로도 진행이 가능한가요?