최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
| [[분류:데이터베이스]] | | [[분류:데이터베이스]][[분류:데이터 분석]] |
| [[분류:데이터 과학]] | |
| | |
| ;Change Data Capture | | ;Change Data Capture |
|
| |
|
| *데이터베이스에서 변경된 부분만 캡쳐하여 백업하거나 전송하는 등의 처리 기법 | | * 데이터베이스에서 변경된 부분만 캡쳐하여 백업하거나 전송하는 등의 처리 기법 |
| *기존 ETL에서 배치를 통해 대량의 데이터를 처리하여 DW로 보내던 무거운 작업을 간소화 | | * 기존 ETL에서 배치를 통해 대량의 데이터를 처리하여 DW로 보내던 무거운 작업을 간소화 |
| *Oracle9i Database에서 처음 소개 | | * Oracle9i Database에서 처음 소개 |
| | |
| ==캡처 대상==
| |
| | |
| *마지막 추출 이후 원본 테이블에 삽입된 데이터(INSERT)
| |
| *마지막 추출 이후 원본 테이블에서 수정된 데이터(UPDATE)
| |
| *마지막 추출 이후 원본 테이블에서 삭제된 데이터(DELETE)
| |
| | |
| == 구현 기법 ==
| |
| {| class="wikitable"
| |
| |+
| |
| !기법
| |
| !내용
| |
| |-
| |
| |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마다 로그가 상이해 이기종 환경에서 사용 어려움
| |
| |}
| |
| | |
| ==같이 보기==
| |
|
| |
|
| *[[데이터 웨어하우스]] | | == 캡처 대상 == |
| *[[데이터 분석]] | | * 마지막 추출 이후 원본 테이블에 삽입된 데이터(INSERT) |
| | * 마지막 추출 이후 원본 테이블에서 수정된 데이터(UPDATE) |
| | * 마지막 추출 이후 원본 테이블에서 삭제된 데이터(DELETE) |