데이터 전처리: 동기화 기법 – CDC

ㅁ 동기화 기법

ㅇ 정의:
데이터베이스나 시스템 간의 데이터 변경 사항을 실시간 또는 근실시간으로 감지하여 다른 시스템에 반영하는 기술.

ㅇ 특징:
– 변경된 데이터만 전송하므로 전체 데이터 전송 대비 네트워크 부하와 처리 시간이 감소.
– 로그 기반, 트리거 기반, 타임스탬프 기반 등 다양한 구현 방식 존재.
– 실시간 분석, 데이터 웨어하우스 적재, 마이크로서비스 간 데이터 일관성 유지에 활용.

ㅇ 적합한 경우:
– 대규모 데이터베이스 간 동기화가 필요한 경우.
– 실시간 데이터 분석 및 대시보드 제공이 필요한 경우.
– 다운타임 없이 데이터 마이그레이션을 수행해야 하는 경우.

ㅇ 시험 함정:
– CDC는 전체 데이터 복제(full replication)와 혼동하기 쉬움.
– 모든 CDC 구현이 완전한 실시간성을 보장하는 것은 아님.
– 로그 기반 CDC는 DBMS 로그 접근 권한이 필요하다는 점을 간과하기 쉬움.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “CDC는 변경된 데이터만 추출하여 전송하는 방식이다.”
X: “CDC는 항상 전체 데이터를 주기적으로 복제한다.”

================================

1. CDC

ㅇ 정의:
Change Data Capture의 약자로, 데이터베이스의 변경 사항(삽입, 수정, 삭제)을 감지하여 다른 시스템에 전달하는 기술.

ㅇ 특징:
– 변경분만 추출하여 전송하므로 효율적.
– 로그 기반 CDC는 트랜잭션 로그를 분석하여 변경 사항을 추출.
– 트리거 기반 CDC는 테이블에 트리거를 설치하여 변경 사항을 기록.
– 타임스탬프 기반 CDC는 변경 시각을 기준으로 변경 데이터 조회.

ㅇ 적합한 경우:
– 데이터 웨어하우스에 실시간 데이터 적재.
– 마이크로서비스 간 데이터 일관성 유지.
– 클라우드로의 실시간 데이터 마이그레이션.

ㅇ 시험 함정:
– CDC는 ETL의 Extract 단계와 동일하지 않음.
– 모든 CDC가 무중단 동기화를 보장하는 것은 아님.
– 트리거 기반 CDC는 성능 저하 가능성 있음.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “로그 기반 CDC는 DBMS의 트랜잭션 로그를 활용한다.”
X: “CDC는 항상 트리거를 사용하여 구현된다.”

ㅁ 추가 학습 내용

CDC 추가 학습 정리

1. 로그 기반 CDC와 트리거 기반 CDC 비교
– 로그 기반 CDC: DB의 트랜잭션 로그를 읽어 변경 사항을 추출. 성능에 유리하고 애플리케이션 영향이 적음. 그러나 로그 접근 권한과 형식 파싱이 필요.
– 트리거 기반 CDC: DB 트리거를 사용해 변경 사항을 별도 테이블에 기록. 구현이 단순하고 로그 접근 불필요하나, 트랜잭션 처리 속도 저하 가능성이 있음.

2. 실시간 CDC와 배치 CDC 차이
– 실시간 CDC: 변경 사항을 즉시 전송·반영. 최신성 보장, 스트리밍 처리 적합.
– 배치 CDC: 일정 주기마다 변경 사항을 모아 처리. 부하 분산에 유리하지만 지연 발생.

3. 데이터 정합성 문제 해결 방법
– 순서 보장: 변경 이벤트의 타임스탬프·오프셋 관리.
– 재처리 전략: 중복 처리 방지(멱등성), 장애 시 재시도 로직 설계.

4. CDC 도구 사례
– Kafka Connect, Debezium: 다양한 DB 소스 지원, Kafka 기반 스트리밍 파이프라인과 연계 용이.

5. CDC와 스트리밍 데이터 파이프라인 관계
– CDC는 데이터 변경 이벤트를 스트리밍 파이프라인의 입력으로 제공하여 실시간 분석·처리 가능하게 함.

6. CDC의 데이터 레이크·데이터 웨어하우스·스트리밍 분석 환경 통합
– 데이터 레이크: 원본 변경 데이터를 원시 형태로 저장.
– 데이터 웨어하우스: 변경 데이터 기반으로 분석용 데이터 갱신.
– 스트리밍 분석: 실시간 이벤트 처리 및 모니터링.

7. 보안 및 권한 관리 고려사항
– DB 로그 접근 권한 관리.
– 개인정보 마스킹 및 민감 데이터 보호.

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*