변경 데이터 캡처란 무엇인가요?
데이터 변경 캡처란 무엇인가요?
변경 데이터 캡처(CDC)는 삽입, 업데이트, 삭제 등 데이터 세트에 대한 행 수준 변경 사항을 식별하고 기록하는 데이터 통합 기술입니다. CDC는 전체 테이블을 반복적으로 추출하는 대신 수정된 레코드만 캡처하여 다운스트림 시스템에 적용합니다. 이 증분식 접근 방식을 사용하면 전체 refresh에 드는 비용이나 지연 없이 분석 플랫폼, 운영 애플리케이션, 머신러닝 파이프라인이 최신 정보와 일치된 상태를 유지할 수 있습니다.
기존의 배치 파이프라인은 전체 스캔을 수행하거나 대규모 데이터세트를 다시 로드하는 주기적인 수집 작업에 의존합니다. 이러한 워크플로는 간단하고 비용 효율적이지만, 지연 시간을 추가하고 변경되지 않은 데이터를 반복적으로 처리하기 때문에 대규모 환경에서는 비효율적입니다. CDC는 트랜잭션 로그, 트리거, 타임스탬프 또는 네이티브 변경 피드와 같은 메커니즘을 통해 변경 사항을 지속적으로 감지하여 이러한 한계를 해결하고, 데이터 레이크하우스 아키텍처 플랫폼이 더 최신 데이터와 감소된 컴퓨팅 오버헤드로 운영될 수 있도록 합니다.
자세히 보기
ETL 프로세스에서 CDC가 작동하는 방식
ETL 파이프라인 내에서 CDC는 마지막 로드 이후 변경된 데이터만 추출하는 메커니즘입니다. CDC는 예약된 전체 테이블 추출을 실행하는 대신 소스 데이터베이스에서 새 행이나 수정된 행이 발생할 때 이를 캡처합니다. 로그, 트리거 또는 스냅샷 델타에서 수집된 이벤트만 변경함으로써 추출, 변환, 로드(ETL) 프로세스를 통해 데이터세트의 지속적인 변화를 나타내는 증분 스트림을 형성할 수 있습니다.
이벤트가 파이프라인에 들어오면 ETL 프로세스가 이어받아 전체 데이터 세트가 아닌 변경된 각 레코드에 대해 정리, 보강 또는 유효성 검사를 실행합니다. 최종 로드 단계에서는 이러한 증분 업데이트만 대상 테이블 또는 리포지토리에 적용하므로 경량의 지속적인 수집이 가능해집니다. 이 접근 방식은 I/O를 줄이고 다운스트림 시스템이 소스와 긴밀하게 일치하도록 유지합니다.
CDC는 지속적인 추출, 변환, 로드를 지원하여 배치 지향 워크플로의 ETL을 실시간 파이프라인으로 현대화합니다. 분석, 대시보드 및 머신 러닝 파이프라인 은 스트리밍 분석을 통해 장기 실행 작업이나 유지 관리 기간에 의존하지 않고 최신 데이터를 일관되게 반영합니다.
현대 데이터 아키텍처에서 CDC가 중요한 이유
현대 데이터 에코시스템은 운영 시스템, 분석 플랫폼, 머신러닝 파이프라인 간에 흐르는 시기적절하고 정확한 정보에 의존합니다. 전자상거래, 금융, 물류와 같은 환경에서는 구매, 프로필 업데이트, 재고 조정과 같은 작업을 통해 새로운 데이터가 생성되면서 데이터가 끊임없이 변경됩니다. CDC가 없으면 이러한 업데이트는 다음 일괄 ETL 작업이 실행될 때까지 소스 시스템에 격리된 상태로 남아 있게 되며, 이로 인해 대시보드, 보고서, 모델이 오래된 데이터세트에 의존하게 될 수 있습니다.
CDC는 실시간 동기화를 지원하여 모든 연결된 시스템을 동일한 단일 정보 소스(single source of truth)에 맞춰 정렬함으로써 이 문제를 해결합니다.
이 프로세스는 또한 클라우드 현대화의 핵심적인 부분인 무중단 마이그레이션을 지원합니다. CDC는 쓰기 작업을 중지하거나 위험한 전환을 수행하는 대신 기존 시스템과 새 시스템 간의 변경 사항을 지속적으로 복제하여 원활한 마이그레이션을 가능하게 합니다.
CDC와 기존 ETL의 주요 차이점
기존 ETL 파이프라인은 많은 분석 워크로드의 중심이지만 CDC와는 매우 다르게 작동합니다. ETL은 일반적으로 시간별, 야간 또는 다른 고정된 간격과 같이 예약된 배치로 데이터를 이동합니다. 각 실행은 소스 시스템에서 데이터를 추출하고 변환한 후 Databricks Data Engineering으로 구동되는 다운스트림 플랫폼에 다시 로드합니다. 이 모델은 예측 가능하지만, 레코드의 일부만 변경된 경우에도 지연 시간을 유발하고 시스템이 전체 테이블이나 대규모 파티션을 스캔해야 할 수 있습니다.
CDC는 변경 사항이 발생하는 즉시 캡처하여 소스 시스템에서 데이터가 변경되는 시점과 분석 또는 운영에 사용할 수 있게 되는 시점 사이의 격차를 없애줍니다.
CDC와 ETL이 데이터 이동을 처리하는 방식을 비교하면 CDC의 중요성이 더욱 명확해집니다. 기존 ETL은 종종 전체 테이블 스캔이나 대량 재로드에 의존하는 반면, CDC는 증분 변경 사항만 전송합니다. 이는 컴퓨팅 오버헤드를 크게 줄이고 데이터 파이프라인의 전반적인 효율성을 향상시킵니다.
배치 ETL 또한 일관된 읽기를 보장하기 위해 유지 관리 기간에 의존합니다. CDC는 정상적인 데이터베이스 활동을 중단하지 않고 변경 사항을 캡처하여 이러한 종속성을 제거합니다. 이로 인해 CDC는 실시간 대시보드, 추천 엔진 또는 운영 분석과 같이 매우 최신 데이터가 필요한 시스템에 매우 적합합니다. 그러나 ETL은 대규모 기록 백필 또는 주기적 변환에 여전히 적합하며, 현대 아키텍처에서 CDC와 ETL은 함께 보완적인 수집 전략을 형성할 수 있습니다.
현대 데이터 생태계의 CDC
CDC를 사용하면 데이터 웨어하우스, 레이크하우스, 스트리밍 플랫폼 전반에서 데이터가 지속적이고 안정적으로 흐를 수 있습니다. 모든 변경 사항이 발생 순서대로 캡처되므로 대시보드와 애플리케이션은 운영 시스템과 동기화된 상태를 유지합니다. 또한 CDC는 데이터가 어떻게 변화했는지에 대한 명확한 기록을 보존하여 감사 가능성과 거버넌스를 지원하는데, 이는 금융 및 의료와 같은 규제 산업의 핵심 요구 사항이며, 특히 데이터 웨어하우스에서 lakehouse로의 마이그레이션 전략을 구현할 때 중요합니다.
CDC 구현 방법: 비교 및 선택
CDC와 SCD: 관계 이해하기
CDC와 SCD는 데이터 파이프라인 내에서 서로 다른 역할을 수행합니다. CDC는 소스 시스템에서 행 수준 변경 사항을 감지하고 추출하는 역할을 하는 반면, SCD는 이러한 변경 사항이 대상 시스템에 저장되는 방식을 결정합니다.
CDC가 고객의 주소 업데이트와 같은 변경 사항을 식별하면, SCD 유형 1은 기록 값이 필요하지 않으므로 기존 레코드를 덮어씁니다. 대신 SCD 유형 2는 전체 기록을 보존하기 위해 시작 및 종료 타임스탬프가 있는 새로운 버전의 레코드를 생성합니다. 다시 말해, CDC는 증분 변경 이벤트를 제공하고, SCD는 이러한 이벤트가 현재 상태 스냅샷 또는 기록 타임라인으로 표현되는 방식을 결정하는 규칙을 적용합니다.
조직은 시스템 성능, 복잡성, 비즈니스 요구 사항에 따라 여러 가지 방법으로 CDC를 구현할 수 있습니다. 조직이 활용하는 가장 일반적인 방법은 변경 사항을 다르게 감지합니다.


