Database

CDC(Change Data Capture)

TedDev 2024. 11. 28. 16:36
728x90

CDC(Change Data Capture)는 데이터베이스에서 데이터 변경 사항을 캡처하고 이를 다른 시스템이나 서비스로 전송하는 기술 또는 프로세스를 말한다. 이는 데이터베이스의 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)와 같은 변경 사항을 추적하고 이를 실시간 또는 배치 작업으로 다른 데이터 스토어, 데이터 웨어하우스, 데이터 레이크 등으로 전달하는데 사용된다.

 

CDC의 주요 목적

  • 데이터 동기화 : 여러 시스템 간의 데이터를 실시간으로 동기화
  • 데이터 분석 : 실시간 분석 및 데이터 스트리밍 애플리케이션 구현
  • ETL 개선 : 전통적인 ETL(Extract, Transform, Load) 프로세스를 개선하여 실시간 데이터 파이프라인 구축
  • 이벤트 드리븐 아키텍처 : 데이터베이스의 변경 사항을 트리거로 사용하는 이벤트 기반 시스템 개발

CDC의 주요 방식

CDC의 주요 구현 방법은 다음과 같다.

  1. 트리거 기반
    • 데이터베이스 트리거를 사용하여 변경 사항을 캡처
    • 장점 : 비교적 간단한 구현
    • 단점 : 성능에 영향을 줄 수 있음
  2. 로그 기반
    • 데이터베이스의 트랜잭션 로그(예: MySQL의 binlog, PostgreSQL의 WAL)를 활용
    • 장점 : 성능에 덜 영향을 미치며, 변경 사항을 더 세밀하게 추적 가능
    • 단점 : 설정이 복잡할 수 있음
  3. 쿼리 기반
    • 주기적으로 데이터베이스를 쿼리하여 변경 사항을 확인
    • 장점 : 간단한 설정
    • 단점 : 대규모 데이터베이스에서는 비효율적일 수 있음
  4. 데이터베이스 내장 CDC 기능
    • Oracle GoldenGate, Microsoft SQL Server의 CDC 등과 같은 데이터베이스에서 제공하는 내장 기능을 활용
    • 장점 : 데이터베이스 수준에서 최적화
    • 단점 : 특정 데이터베이스에 종속적

 

CDC의 일반적인 사용 사례

  1. 실시간 데이터 파이프라인
    • Kafka, Apache Flink와 같은 도구를 사용하여 데이터를 스트리밍
  2. 데이터 복제
    • 데이터베이스 복제 또는 분산 시스템 간의 동기화
  3. 이벤트 소싱
    • 애플리케이션에서 데이터 변경 이벤트를 기록하여 상태를 관리
  4. 데이터 웨어하우스 로드
    • 실시간 분석을 위해 데이터 웨어하우스에 변경 사항을 전달

 

CDC는 실시간 애플리케이션과 빅데이터 환경에서 데이터 동기화 및 처리의 핵심 기술로 사용되고 있다. 특정 요구 사항에 따라 적합한 CDC 방식과 도구를 선택하여 사용하는 것이 중요하다.

반응형

'Database' 카테고리의 다른 글

DB Replication  (1) 2024.12.09
MySQL 옵티마이저 실행계획 분석  (0) 2024.12.09
트랜잭션의 메커니즘  (0) 2024.10.28
Sharding, Clustering, Replication  (0) 2024.10.23
데이터베이스 인덱스에 대한 이해와 활용  (2) 2024.09.05