매번 다 퍼올 필요 없잖아? 당근의 MongoDB CDC 구축기
108
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

당근의 MongoDB CDC 구축기

이 게시물은 당근 데이터 가치화 팀이 MongoDB 데이터를 BigQuery로 안정적으로 적재하기 위해 CDC(Change Data Capture) 기반 파이프라인을 구축한 과정을 설명합니다.

배경 및 문제점

  • 운영 DB에 직접 분석 쿼리 실행 시 트랜잭션 영향 발생
  • 기존 MongoDB 덤프 방식으로는 2시간 내 데이터 전달 SLO 충족 어려움
  • DB 부하와 데이터 적재 시간 간 trade-off 문제

CDC 도입과 기술 선택

  • MongoDB Change Stream을 활용하는 Flink CDC를 선택
  • Flink는 네이티브 지원, 상태 관리, 통합 파이프라인, 병렬 처리 확장성 강점 보유

구축 아키텍처와 운영

  • Kafka 큐 없이 MongoDB Change Stream → Flink CDC → BigQuery로 데이터 전달
  • Hourly 배치 처리로 2시간 SLO 및 운영 안정성 확보
  • 스키마 변경 시 자동 반영되는 Two-Stage Table 구조 채택
  • 정합성 검증을 위한 dual write 및 자동 모니터링 도입

주요 고민과 해결책

  • 트랜잭션 순서 보장 확인 및 fullDocument 옵션 활용
  • Initial Full Dump는 Spark로 처리하여 성능 문제 해결
  • 스키마 진화 문제는 통제된 승인 및 자동 반영 체계로 관리
  • 데이터 정합성은 엄격한 비교 및 모니터링으로 보장

연관 게시글