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를 적용할 수 있지만, 값을 키우면 누락 가능성을 줄이는 대신 적재 지연이 늘어납니다.
비슷한 학습 자료
서비스 조직에서 Kafka를 사용할 때 알아 두어야 할 것들 (4)
엔지니어링데이 2025 · YouTube
서비스 조직에서 Kafka를 사용할 때 알아 두어야 할 것들 (3)
엔지니어링데이 2025 · YouTube
Spark Connect on Kubernetes #1: 견고한 Spark Connect 만들기
박지원 · 토스 기술 블로그
토스증권 Apache Kafka 데이터센터 이중화 구성 #2: 데이터 미러링
송지수 · 토스 기술 블로그
입수는 Datalake로! (feat. Iceberg)
조승완 · 토스 기술 블로그
ksqlDB를 활용한 증권사의 실시간 데이터 처리하기
강병수 · 토스 기술 블로그