매번 다 퍼올 필요 없잖아? 당근의 MongoDB CDC 구축기
백엔드
매번 다 퍼올 필요 없잖아? 당근의 MongoDB CDC 구축기
두줄요약
MongoDB 덤프의 DB 부하와 SLO 문제를 해결하기 위해 CDC를 도입했습니다. Flink CDC와 Spark, 이중 테이블 구조로 적재와 스키마 변경, 정합성 검증을 묶었습니다.
핵심 내용
- MongoDB 운영 DB의 부하와 2시간 SLO를 동시에 맞추기 위해 CDC 도입 배경 정리
- Flink CDC를 선택해 MongoDB Change Stream 수집, 변환, BigQuery 적재까지 통합 파이프라인 구축
- Initial Full Dump는 Spark Job으로 분리하고, 스키마 변경은 Raw/Final 이중 테이블 구조로 흡수
- dual write와 checksum 기반 비교로 정합성 검증 체계 마련