본문으로 이동
Kafka Connect로 DB 데이터 쉽게 연동하기
문서

Kafka Connect로 DB 데이터 쉽게 연동하기

김소라 · 컬리 · 컬리 기술 블로그

원본 보기

소개

Kafka Connect와 JDBC 커넥터를 이용해 DB 데이터를 쉽게 Kafka로 전송하는 방법과 발생 가능한 문제를 해결하는 방법을 공유합니다.

AI 핵심 요약

여러 데이터베이스의 데이터를 Kafka로 연동하기 위해 Kafka Connect와 JDBC Source Connector를 활용하는 방법을 소개합니다. JDBC 커넥터의 증분 쿼리 모드는 PK나 timestamp를 오프셋으로 삼아 새 데이터를 주기적으로 가져오며, 로그 기반 CDC보다 설정이 간단하고 다양한 DB에 적용하기 쉽습니다. 다만 삭제·갱신, 쿼리 주기 사이의 여러 변경, 늦은 트랜잭션 커밋은 데이터 누락을 일으킬 수 있어 모든 변경 이력을 보장하는 용도에는 적합하지 않습니다. 늦게 도착하는 이벤트에는 timestamp.delay.interval.ms로 여유 시간을 둘 수 있지만, 데이터 특성에 맞춰 누락 위험과 적재 지연 사이의 균형을 잡아야 합니다.

  • JDBC 증분 모드는 증가하는 PK나 timestamp 컬럼을 오프셋으로 사용하므로, 추적 기준 컬럼의 특성과 테이블 변경 패턴을 먼저 확인해야 합니다.
  • 삭제 이벤트는 증분 쿼리로 감지할 수 없고, Incrementing 모드는 기존 행의 갱신도 놓칠 수 있습니다.
  • 쿼리 주기 사이에 여러 변경이 일어나면 중간 상태가 사라질 수 있으므로, 최신 상태만 필요하거나 삽입 위주인 로그성 테이블에 적합합니다.
  • 늦게 커밋되는 데이터에는 timestamp.delay.interval.ms를 적용할 수 있지만, 값을 키우면 누락 가능성을 줄이는 대신 적재 지연이 늘어납니다.