BigData&AI

change data capture (CDC) 란

히핑소 2021. 5. 28. 15:49
반응형

0. CDC 란 
change data capture 의 약어로
마지막으로 추출한 이후 변경된 데이터만 골라내는 기술을 의미한다.
흔히 데이터 백업이나 통합 작업을 할 경우 방대한 데이터를 다뤄야 하는데 원본소스 가운데 최근 변경된 데이터들만 골라 다른 시스템으로 옮기게되면 시스템 로드도 줄이고 전체적인 작업 생산성을 향상시킬 수 있다. 
특히 한 시스템에 있는 대량의 데이터를 정기적으로 추출해 다른 시스템으로 이동하는 데이터 통합이나 데이터 웨어하우스 업무의 경우 CDC 기술을 이용하면 데이터를 추출, 이동하는 시간을 크게 줄일 수 있다.
또한 24시간 운영해야 하는 필수업무 시스템의 경우 CDC 기술을 이용하면 다운타임 없이 실시간 백업과 데이터 통합이 가능하다.
1. CDC의 개념 및 특징

- CDC는 데이터베이스 내 데이터에 대한 변경을 식별해 필요한 후속처리(데이터 전송/공유)를 자동화하는 기술 또는 설계 기법이자 구조이다.
실시간 또는 근접 실시간 데이터 통합을 기반으로 하는 데이터 웨어하우스 및 기타 데이터 저장소 구축에 넓게 활용된다.
- 스토리지 하드웨어 계층에서붑터 애플리케이션 계층에 이르기까지 다양한 계층에서 다양한 기술을 통해 구현될 수 있다.
- 단일 정보 시스템 내 다수의 CDC 메커니즘이 구현돼 동작될 수 있다. 
2. CDC 구현 기법
1) Time Stamp on Rows : 변경이 반드시 인지되어야 하는 테이블 내 마지막 변경 시점을 기록하는 타임스탬프 컬럼을 두고, 마지막 변경 타임스탬프 값보다 더 최근의 타임스탬프 값을 갖는 레코드를 변경된 것으로 식별하는 기법
2) Version Numbers on Rows : 변경이 반드시 인지되어야 하는 테이블 해당 레코드의 버전을 기록하는 컬럼을 두고, 기 식별된 레코드 버전보다 더 높은 버전을 보유한 레코드를 변경된 것으로 식별하는 기법
3) Status on Rows : 1), 2) 기법에 대한 보완 용도로 활용. 데이터 변경 여부를 True/False의 불린 값으로 저장하는 컬럼의 상태 값을 기반으로 변경 여부를 판단
4) Time Version/Status on Rows : 1), 2), 3) 세가지 특성 모두 활용
5) Triggers on Tables :
- 데이터베이스 트리거를 활용해 사전에 등록된 다수 대상 시스템에 변경된 데이터를 배포하는 형태로 CDC를 구현하는 기법.
- 시스템 관리 복잡도 증가, 변경 관리의 어려움, 확장성 감소를 유발하는 등 전반적인 시스템 유지보수성을 저하시키는 특성이 있어 사용에 주의를 요한다.
6) Event Programming : 데이터 변경 식별 기능을 애플리케이션에 구현하며, 애플리케이션 개발 부담과 복잡도를 증가시키나, 다양한 조건에 의한 CDC 메커니즘을 구현할 수 있는 기법이다.
7) Log Scanner on Database :
- 대부분의 데이터 베이스 관리 시스템에 제공하는 트랜잭션 로그에 대한 스케닝 및 변경 내역에 대한 해석을 통해 CDC 메커니즘을 구현.
- 데이터베이스 관리 시스템에 따라 트랜잭션 로그 관리 메커니즘이 상이해 다수의 기기종 데이터베이스를 사용하는 환경에서 적용 시 작업 규모가 증가될 수 있으니 주의가 필요하다
- 장점 : 데이터 베이스와 사용 애플리케이션에 대한 영향도 최소화, 변경 식별 지연시간 최소화, 트랜잭션 무결성에 대한 영향도 최소화, 데이터베이스 스키마 변경 불필요.
 
3. CDC 구현 방식
1) PUSH : 데이터 원천에서 변경을 식별하고 대상 시스템에 변경 데이터를 적재해 주는 방식
2) PULL : 대상 시스템에서 데이터 원천을 정기적으로 살펴보고, 필요 시 데이터를 다운로드 하는 방식
 
4. CDC solution
solution 으로는 대표적으로 HVR, Strim, 인포매티카 cdc, 오라클 golden gate, Qlik  Replicate 등의 국외 솔루션과 몇몇 국산 솔루션도 있다.
https://www.datanet.co.kr/news/articleView.html?idxno=155922 

솔루션 선택 시 에는
비용 검토, 원천에 agent 설치 또는 agentless(HVR, Qlik 지원) 방식 결정,
그리고 본인 DB 방식과의 연계검증 등의 고려가 필요하다.
 
구글 cdc https://cloud.google.com/architecture/database-replication-to-bigquery-using-change-data-capture?hl=ko 
본문 참조 https://surgach.tistory.com/42

반응형