본문 바로가기
개발/아키텍처

CDC(Change Data Capture)

by Devsong26 2023. 11. 29.

CDC (Change Data Capture)는 데이터베이스의 변경사항을 실시간으로 추적하고, 이러한 변경사항을 다른 시스템, 데이터베이스, 애플리케이션으로 전송하는 기술입니다. CDC는 데이터베이스에서 발생하는 모든 삽입(insert), 갱신(update), 삭제(delete) 작업을 감지하고, 이 정보를 실시간으로 다른 시스템에 제공하여 데이터 동기화 및 분석을 지원합니다.

 


CDC의 작동 원리

  • 변경사항 감지
    • CDC는 데이터베이스의 변경사항을 실시간으로 감지합니다. 이는 데이터베이스의 트랜잭션 로그, 트리거, 또는 다른 메커니즘을 통해 수행될 수 있습니다.
  • 이벤트 캡처 및 전송
    • 감지된 변경사항은 이벤트 형태로 캡처되며, 이 이벤트들은 메시징 시스템(예: Apache Kafka)을 통해 다른 시스템으로 전송됩니다.
  • 데이터 동기화 및 처리
    • 다른 시스템이나 애플리케이션은 이 이벤트들을 받아 추가적인 처리를 수행합니다. 예를 들어, 데이터 웨어하우스 동기화, 실시간 분석, 또는 다른 데이터베이스로의 데이터 복제 등이 이에 해당합니다.

 


CDC의 주요 이점

  • 데이터 동기화
    • 여러 시스템 간 데이터 일관성을 유지할 수 있습니다.
  • 실시간 분석
    • 변경사항을 실시간으로 감지하여 빠른 데이터 분석과 의사결정을 가능하게 합니다.
  • 효율성
    • 데이터베이스의 부하를 줄이면서 데이터를 다른 시스템으로 효율적으로 전송할 수 있습니다.
  • 복구 및 감사
    • 데이터 변경 이력을 추적하여 시스템의 오류 복구 및 감사에 활용할 수 있습니다.

 


CDC 도구

  • Debezium
    • Apache Kafka와 함께 사용되며, 여러 데이터베이스의 변경사항을 실시간으로 Kafka 토픽으로 전송합니다.
  • Apache Kafka Connect
    • 다양한 소스와 싱크(Sink)를 연결하여 데이터 변경사항을 스트리밍하는 플랫폼입니다.

 


주의사항

  • 성능 고려
    • 대규모 데이터베이스에서 CDC를 사용할 때 성능 및 네트워크 부하를 고려해야 합니다.
  • 데이터 일관성
    • 데이터 소스와 목적지 사이의 일관성을 유지하기 위한 전략이 필요합니다.
  • 복잡성 관리
    • CDC 구현은 시스템의 복잡성을 증가시킬 수 있으므로, 적절한 관리 및 모니터링이 필요합니다.

 


CDC는 데이터 통합, 실시간 데이터 처리, 데이터 동기화 등 다양한 시나리오에서 유용한 솔루션을 제공합니다.

'개발 > 아키텍처' 카테고리의 다른 글

Debezium  (0) 2023.11.30
CQRS(Command Query Responsibility Segregation)  (0) 2023.11.30
사가 패턴  (0) 2023.11.27
카나리아 배포  (0) 2023.11.17
MSA 통신 패턴 (동기, 비동기)과 Apache Kafka, Zookeeper  (0) 2022.02.27