Change Data Capture: Stop Copying 50M Rows to Move 5K Changes
Author: Ilia Gusev | Source: https://podostack.com/p/change-data-capture-cdc-intro | Published: 2026-03-25
한 줄 요약
CDC는 변경된 데이터만 추적하여 전체 테이블 복사를 제거하며, Timestamp/Trigger/Log 기반 세 가지 방식의 트레이드오프와 SCD와의 자연스러운 결합을 설명한다.
핵심 주장/내용
- 매일 5,000건만 변경되는데 5,000만 행을 전부 복사하는 것은 컴퓨팅, 네트워크, 스토리지 낭비이며 CDC가 이를 해결한다
- Timestamp 기반: 가장 간단하지만 hard delete와 DDL 변경을 감지할 수 없다
- Trigger 기반: 삭제까지 포착하지만 동기식이라 OLTP 쓰기 부하가 추가되고 DB 엔진별로 구현이 다르다
- Log 기반(WAL/binlog): OLTP에 영향 없이 모든 변경(DDL 포함)을 실시간으로 포착하는 표준이지만 Kafka 등 추가 인프라가 필요하다
- CDC와 SCD Type 2를 결합하면 전체 테이블 스캔 없이 차원 테이블을 실시간으로 유지할 수 있다
주요 수치 / 사실
- 5,000만 행 중 5,000건만 변경되는 실제 사례
- 야간 배치 4시간 실행 → CDC로 수초 레이턴시 달성 가능
- 10,000 writes/sec 테이블에서 Trigger 방식은 10,000건의 추가 INSERT 발생
- Debezium이 가장 대중적인 오픈소스 Log 기반 CDC 도구 (Fivetran, Striim은 관리형)
- Log 기반 CDC는 PostgreSQL의 논리적 복제, MySQL의 row-based binlog 설정 필요
관련 위키
Source: 원문 보기