CDC

From CS Wiki
Revision as of 09:28, 6 May 2020 by Itwiki (talk | contribs) (문자열 찾아 바꾸기 - "분류:데이터/통계학" 문자열을 "분류:데이터 과학" 문자열로)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Change Data Capture
  • 데이터베이스에서 변경된 부분만 캡쳐하여 백업하거나 전송하는 등의 처리 기법
  • 기존 ETL에서 배치를 통해 대량의 데이터를 처리하여 DW로 보내던 무거운 작업을 간소화
  • Oracle9i Database에서 처음 소개

캡처 대상[edit | edit source]

  • 마지막 추출 이후 원본 테이블에 삽입된 데이터(INSERT)
  • 마지막 추출 이후 원본 테이블에서 수정된 데이터(UPDATE)
  • 마지막 추출 이후 원본 테이블에서 삭제된 데이터(DELETE)

구현 기법[edit | edit source]

기법 내용
Time Stamp on Rows
  • 레코드의 마지막 변경 시점을 기록하는 타임스탬프 칼럼 사용
  • 마지막 변경 타임스탬프 값보다 더 최근 값의 레코드 식별
Version Numbers on Rows
  • 레코드의 버전을 기록하는 칼럼 이용
  • 기 식별된 레코드 버전보다 더 높은 레코드를 식별
  • 레코드의 최종 변경을 기록하는 참조 테이블을 함께 운용
Status On Rows
  • 타임스탬프 및 버전 기법을 보완
  • 변경 여부를 True/False로 저장하는 상태 값으로 변경 식별
  • 더 최근 값에 대한 변경 여부를 유보할 수 있음
Time/Version/Status on Rows
  • 타임스탬프/버전/상태 값 3가지를 모두 활용
  • 시간대, 최신 여부, 상태를 다각도로 판단하는 규칙 사용 가능
Triggers on Tables
  • 데이터베이스 트리거 이용
  • Subscribe한 다수의 대상 시스템에 변경 데이터를 배포
  • 시스템 관리 복잡도 감소 및 확장성 제한 문제
Event Programming
  • 데이터 변경 식별 기능을 애플리케이션에 구현
  • 다양한 조건에 의한 CDC 매커니즘 구현 가능
Log Scanner on Database
  • 트랜잭션 로그에 대한 스캐닝 및 분석을 통해 CDC 구현
  • DBMS마다 로그가 상이해 이기종 환경에서 사용 어려움

같이 보기[edit | edit source]