ADP(데이터분석 전문가)/스터디노트

[2과목] CDC(Change Data Capture)

bonanza 2021. 2. 2. 19:14

1. CDC의 개념 및 특징

  • CDC(Change Data Capture): 데이터베이스 내 데이터에 대한 변경을 식별해 필요한 후속 처리(데이터 전송/공유 등)를 자동화 하는 기술 또는 설계 기법
  • 데이터 베이스 A에서 B로 데이터를 옮길때는 ETL과정이 필요하나 여러가지 문제 (대용량으로 인한 속도, 기존 데이터 훼손 등)로 CDC작업을 수행

DB(A)에서 DB(B)로 옮길때 ETL 과정이 필요

2. CDC 구현 기법

가. Time Stamp on Rows

- 변경이 반드시 인지되어야 하는 테이블 내 마지막 변경 시점을 기록하는 타임스탬프 칼럼을 두고, 마지막 변경 타임스탬프 값보다 더 최근의 타임스탬프 값을 갖는 레코드를 변경된 것으로 식별하는 기법이다.

나. Version Numbers on Rows

- 변경이 반드시 인지되어야 하는 테이블 해당 레코드의 버전을 기록하는 칼럼을 두고, 기 식별된 레코드 버전보다 더 높은 버전을 보유한 레코드를 변경된 것으로 식별하는 기법이다.

- 레코드들의 최신 버전을 기록, 관리하는 '참조 테이블'을 함께 운영하는 것이 일반적이다.

다. Status on Rows

- 타임 스탬프 및 버전 넘버 기법에 대한 보완 용도로 활용되어, 데이터 변경의 여부를 True/ False의 불린(boolean)값으로 저장하는 칼럼의 상태 값을 기반으로 변경 여부를 판단하는 기법이다.

- 더 높은 버전 넘버 또는 더 최근의 갱신 타임스탬프를 보유한 레코드에 대한 변경 여부 판단을 사람이 직접 결정할 수 있도록 유보하는 등의 업무 규칙을 적용할 수 있다.

라. Time/Version/Status on Rows

- 타임스탬프, 버전 넘버, 상태 값의 세 가지 특성을 모두 활용하는 기법이다.

- '특정 시간대의 버전 넘버 a.aa를 보유했으며 변경 상태 값이 True인 모든 레코드를 추출'과 같은 정교한 쿼리 생성에 활용해 개발에 유연성을 제공할 수 있다.

마. Triggers on Tables

- 데이터베이스 트리거를 활용해 사전에 등록(Subscribe0된 다수 대상 시스템(Target)에 변경 데이터를 배포(Publish)하는 형태로 CDC를 구현하는 기법이다.

- 데이터베이스 트리거는 시스템 관리 복잡도 증가, 변경 관리의 어려움, 확장성의 감소를 유바랗는 등 전반적인 시스템 유지보수성을 저하시키는 특성이 있어 사용에 주의를 요한다.

바. Event Programming

- 데이터 변경 식별 기능을 애플리케이션에 구현하며, 애플리케이션 개발 부담과 복잡도를 증가시키나, 다양한 조건에 의한 CDC 메커니즘을 구현할 수 있는 기법이다.

사. Los Scanner on Database

- 대부분의 데이터베이스 관리 시스템(DBMS)에서 제공하는 트랜잭션 로그에 대한 스캐닝 및 변경내역에 대한 해석을 통해 CDC 메커니즘을 구현하는 기법이다.

- 각 데이터베이스 관리 시스템에 따라 트랜잭션 로그 관리 메커니즘이 상이해 다수의 이기종 데이터베이스를 사용하는 환경에서 적용 시 작업 규모가 증가될 수 있으니 주의가 필요하다.

- 장점 : 데이터베이스와 사용 애플리케이션에 대한 영향도 최소화, 변경 식별 지연시간 최소화, 트랜잭션 무결성에 대한 영향도 최소화, 데이터베이스 스키마 변경 불필요

3. CDC 구현 방식

  • 푸시 방식: Souce DB에서 변경을 식별하고 Target DB에 변경 데이터를 적재해 주는 방식
  • 풀 방식: Target DB에서 Source DB를 정기적으로 살펴보고 필요시 데이터를 다운로드 하는 방식

 

반응형