CDC: Difference between revisions
From CS Wiki
No edit summary |
m (문자열 찾아 바꾸기 - "분류:데이터/통계학" 문자열을 "분류:데이터 과학" 문자열로) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 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마다 로그가 상이해 이기종 환경에서 사용 어려움 | |||
|} | |||
== | ==같이 보기== | ||
*[[데이터 웨어하우스]] | |||
* [[데이터 웨어하우스]] | *[[데이터 분석]] | ||
* [[데이터 분석]] |
Latest revision as of 09:28, 6 May 2020
- 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 |
|
Time/Version/Status on Rows |
|
Triggers on Tables |
|
Event Programming |
|
Log Scanner on Database |
|