CDC(변경 데이터 캡쳐, Change Data Capture) - ADP #4

    1. CDC(Chage Data Capture)의 개요

    가. CDC의 개념

    - 데이터베이스(Database) 내 데이터에 대한 변경을 식별해 필요한 후속 처리(데이터 전송/공유 등)를 자동화하는 기술 또는 설계 기법이자 구조 (데이터 분석 전문가 가이드) [1]

    - 변경된 데이터를 사용하여 동작을 취할 수 있도록 데이터를 결정하고 추적하기 위해 사용되는 여러 소프트웨어 디자인 패턴들의 모임 (위키피디아) [2]

     

    CDC(변경 데이터 캡쳐, Change Data Capture) - ADP #4


    나. CDC의 방식

    - 푸시 방식 : 데이터 원천(Source)에서 변경을 식별하고 대상 시스템 변경 데이터를 적재

    - 풀 방식 : 대상 시스템(Target)에서 데이터 원천을 정기적으로 살펴서 필요시 데이터를 다운로드

     

    2. CDC 구현 기법

    - 시스템 개발자들은 수많은 방식으로 또 애플리케이션 로직의 시스템 레이어들 중 하나 이상에서부터 물리적 저장소에 이르기까지 CDC를 구축할 수 있음 [2]

     

     

    로우의 타임스탬프(Time Stamp on Rows)

    - 마지막 변경 타임스탬프 값보다 더 최근의 타임스탬프 값을 갖는 레코드를 변경된 것으로 식별

     

    로우의 버전 번호(Version Numbers on Rows)

    - 레코드의 버전을 기록하는 컬럼을 두고, 기 식별된 레코드 버전보다 높은 버전을 보유한 레코드를 변경 한 것으로 식별

    - 레코드들의 최신 버전을 기록 및 관리하는 참조 테이블을 함께 운용

     

    로우의 상태 표시기(Status on Rows)

    - 변경 여부를 True/False 불린(Boolean) 값으로 저장하는 컬럼의 상태 값을 기반으로 변경 여부 판단

    - 타임스탬프와 버저닝을 보충

     

    로우의 시간/버전/상태(Time/Version/Status on Rows)

    - 타임스탬프, 버전 넘버, 상태 값의 세 가지 특성을 모두 활용

    - 정교한 쿼리 생성으로 개발 유연성 제공

     

    테이블에 트리거(Triggers on Tables)

    - 테이터베이스의 트리거(Trigger)를 활용하여 대상 시스템에 변경 데이터를 배포 하는 형태(Publish/Subcribe) 패턴

    - 트리거는 시스템 관리 복잡도를 증가시키며 변경 관리를 어렵게 할 수 있기에 사용에 주의

     

    이벤트 프로그래밍(Event Programming)

    - 데이터 변경 식별 기능을 어플리케이션 구현

    - 어플리케이션의 개발 부담과 복잡도가 증가하지만 정확하고 다양한 매커니즘 구현 가능

     

    로그 스캐너(Log Scanner on Database)

    - 대부분의 데이터베이스 관리 시스템은 DB 고나리 내용과 메타데이터의 변경을 기록하는 트랜잭션 로그를 관리

    - 트랜잭션 로그에 대한 스캐닝 및 변경 내역에 대한 해석을 통해 CDC 매커니즘 구현

    - 이기종 데이터베이스를 활용 시 작업 규모 증가할 수 있음

     

    참고자료

    [1] 데이터 분석 전문가 가이드

    [2] https://ko.wikipedia.org/wiki/변경_데이터_캡처

    댓글

    Designed by JB FACTORY