Azure Cosmos DB 분석 저장소의 변경 데이터 캡처

적용 대상: NoSQL MongoDB

Azure Cosmos DB 분석 저장소의 CDC(변경 데이터 캡처)를 사용하면 분석 저장소에서 변경(삽입, 업데이트 및 삭제) 데이터의 연속적이고 증분적인 피드를 효율적으로 사용할 수 있습니다. Azure Synapse 및 Azure Data Factory와 원활하게 통합되어 높은 데이터 볼륨을 위한 확장성 있는 코드 없는 환경을 제공합니다. 변경 데이터 캡처 기능은 분석 저장소를 기반으로 하므로 프로비저닝된 RU를 사용하지 않고 트랜잭션 워크로드에 영향을 주지 않으며 대기 시간이 짧고 TCO가 낮습니다.

Azure Cosmos DB 분석 저장소의 변경 데이터 캡처 기능은 Azure Synapse 또는 Azure Data Factory 데이터 흐름을 사용하여 다양한 싱크에 쓸 수 있습니다.

Diagram of the analytical store in Azure Cosmos DB and how it, with change data capture, can write to various first and third-party target services.

매핑 데이터 흐름에서 지원되는 싱크 형식에 대한 자세한 내용은 데이터 흐름 지원 싱크 형식을 참조하세요.

분석 저장소에서 다양한 대상으로 증분 데이터 피드를 제공하는 것 외에도 변경 데이터 캡처는 다음 기능을 지원합니다.

  • 삭제 및 중간 업데이트 캡처 지원
  • 특정 유형의 작업에 대한 변경 피드를 필터링하는 기능(업데이트 | 삭제 | 삽입 | TTL)
  • 원본 쿼리를 통해 변경 피드에 필터, 프로젝션 및 변환 적용 지원
  • 동일한 컨테이너의 여러 변경 피드를 동시에 사용할 수 있습니다
  • 컨테이너의 각 변경 내용은 변경 데이터 캡처 피드에 정확히 한 번 표시되며 검사점은 내부적으로 관리됩니다.
  • 변경 내용은 "시작" 또는 "지정된 타임스탬프에서" 또는 "지금부터"에서 동기화할 수 있습니다.
  • 변경 내용을 사용할 수 있는 고정 데이터 보존 기간에는 제한이 없습니다

내부적으로 관리되는 검사점을 통해 효율적인 증분 데이터 캡처

Cosmos DB 컨테이너의 각 변경 내용은 CDC 피드에 정확히 한 번 표시되며 검사점은 내부적으로 관리됩니다. 그래서 "_ts" 값을 기반으로 사용자 지정 검사점을 사용하는 일반적인 패턴의 단점을 해결할 수 있습니다.

  • "_ts" 필터는 항상 최소 데이터 검색을 보장하지 않는 데이터 파일에 적용됩니다. 새 CDC 기능에서 내부적으로 관리되는 GLSN 기반 검사점은 메타데이터를 기반으로 증분 데이터 식별이 수행되도록 하므로 각 스트림에서 최소한의 데이터 검색을 보장합니다.

  • 분석 저장소 동기화 프로세스는 "_ts" 기반 순서를 보장하지 않습니다. 즉, 증분 레코드의 "_ts"가 마지막 검사점 "_ts"보다 작고 증분 스트림에서 누락될 수 있는 경우가 있습니다. 새 CDC는 증분 레코드를 식별하기 위해 "_ts"을 고려하지 않으므로 증분 레코드가 누락되지 않도록 보장합니다.

기능

Azure Cosmos DB 분석 저장소의 변경 데이터 캡처는 다음과 같은 주요 기능을 지원합니다.

처음부터 변경 내용 캡처

Start from beginning 옵션을 선택하면 초기 로드에는 첫 번째 실행 시 컨테이너 데이터의 전체 스냅샷이 포함되며 변경된 데이터 또는 증분 데이터는 후속 실행에서 캡처됩니다. 이는 analytical TTL 속성으로 제한되며 분석 저장소에서 TTL 제거된 문서는 변경 피드에 포함되지 않습니다. 예: analytical TTL이 31536000초(1년에 해당)로 설정된 컨테이너를 상상해 보세요. 이 컨테이너에 대한 CDC 프로세스를 만들면 1년 미만의 문서만 초기 로드에 포함됩니다.

지정된 타임스탬프에서 변경 내용 캡처

Start from timestamp 옵션을 선택하면 초기 로드는 지정된 타임스탬프의 데이터를 처리하고 증분 또는 변경된 데이터는 후속 실행에서 캡처됩니다. 이 프로세스는 analytical TTL 속성에 의해서도 제한됩니다.

지금부터의 변경 내용 캡처

Start from timestamp 옵션을 선택하면 컨테이너의 모든 이전 작업이 캡처되지 않습니다.

삭제, 중간 업데이트 및 TTL 캡처

분석 저장소의 변경 데이터 캡처 기능은 삭제, 중간 업데이트 및 TTL 작업을 캡처합니다. 캡처된 삭제 및 업데이트는 삭제 및 업데이트 작업을 지원하는 싱크에 적용할 수 있습니다. {_rid} 값은 레코드를 고유하게 식별하므로 {_rid}을 싱크 쪽의 키 열로 지정하면 업데이트 및 삭제 작업이 싱크에 반영됩니다.

TTL 작업은 삭제로 간주됩니다. 원본 설정 섹션을 확인하여 모드 세부 정보 및 싱크의 중간 업데이트 및 삭제에 대한 지원을 확인할 수 있습니다.

특정 작업 유형에 대한 변경 피드를 필터링할 수 없습니다

특정 작업 유형에 대한 변경 데이터 캡처 피드를 필터링할 수 없습니다. 예를 들어 삽입 및 업데이트 작업만 선택적으로 캡처하여 사용자 삭제 및 TTL 삭제 작업을 무시할 수 있습니다.

원본 쿼리를 통해 변경 피드에 필터, 프로젝션 및 변환 적용

필요에 따라 원본 쿼리를 사용하여 필터, 프로젝션 및 변환을 지정할 수 있습니다. 이 쿼리는 모두 열 형식 분석 저장소로 푸시됩니다. 다음은 Category = 'Urban' 필터를 사용하여 증분 레코드만 캡처하는 샘플 소스 쿼리입니다. 이 샘플 쿼리는 5개의 필드만 프로젝트하고 간단한 변환을 적용합니다.

SELECT ProductId, Product, Segment, concat(Manufacturer, '-', Category) as ManufacturerCategory
FROM c 
WHERE Category = 'Urban'

여러 CDC 프로세스

분석 저장소에서 CDC를 사용하는 여러 프로세스를 만들 수 있습니다. 이 방식은 다양한 시나리오와 요구 사항을 지원할 수 있는 유연성을 제공합니다. 한 프로세스에는 데이터 변환 및 여러 싱크가 없을 수 있지만 다른 프로세스에는 데이터 평면화와 싱크 하나가 있을 수 있습니다. 그리고 병렬로 실행할 수 있습니다.

처리량 격리, 짧은 대기 시간 및 낮은 TCO

Cosmos DB 분석 저장소에 대한 작업은 프로비전된 RU를 사용하지 않으므로 트랜잭션 워크로드에 영향을 주지 않습니다. 분석 저장소를 사용하여 데이터 캡처 변경은 대기 시간이 짧고 TCO도 낮습니다. 대기 시간이 낮을수록 데이터 처리에 더 나은 병렬 처리를 가능하게 하는 분석 저장소가 있으며, 빠르게 변화하는 경제 조건에서 비용 효율성을 높일 수 있는 전체 TCO를 줄일 수 있습니다.

시나리오

다음은 변경 데이터 캡처 및 분석 저장소를 사용할 수 있는 일반적인 시나리오입니다.

Cosmos DB에서 증분 데이터 사용

현재 사용 중이거나 사용하려는 경우 분석 저장소 변경 데이터 캡처를 사용할 수 있습니다.

  • Azure Data Factory Data Flows 또는 복사 작업 사용하여 증분 데이터 캡처.
  • Azure Data Factory를 사용하여 일회성 일괄 처리.
  • Cosmos DB 데이터 스트리밍
    • 분석 저장소에서는 트랜잭션 저장소 데이터를 동기화하는 데 최대 2분 대기 시간이 걸립니다. 1분마다 Azure Data Factory 데이터 흐름을 예약할 수 있습니다.
    • 위의 대기 시간 없이 스트리밍해야 하는 경우 트랜잭션 저장소의 변경 피드 기능을 사용하는 것이 좋습니다.
  • 삭제 캡처, 증분 변경, Cosmos DB 데이터에 필터 적용.
    • 변경 피드에서 Azure Functions 트리거 또는 기타 옵션을 사용하고 삭제, 증분 변경, 변환 적용 등을 캡처하려는 경우 분석 저장소를 통해 변경 데이터 캡처를 사용하는 것이 좋습니다.

선택한 분석 플랫폼에 대한 증분 피드

변경 데이터 캡처 기능을 사용하면 지원되는 모든 싱크 형식에서 Azure Cosmos DB 데이터를 유연하게 사용할 수 있는 엔드 투 엔드 분석 솔루션을 사용할 수 있습니다. 싱크 형식에 대한 자세한 내용은 데이터 흐름 지원 싱크 형식을 참조하세요. 또한 변경 데이터 캡처를 사용하면 Azure Cosmos DB 데이터를 중앙 집중식 데이터 레이크로 가져오고 다른 다양한 원본의 데이터와 데이터를 조인할 수 있습니다. 데이터를 평면화하고, 분할하고, Azure Synapse Analytics 또는 Azure Data Factory에 더 많은 변환을 적용할 수 있습니다.

Azure Cosmos DB for MongoDB 컨테이너에서 데이터 캡처 변경

API for MongoDB에 대한 연결된 서비스 인터페이스는 아직 Azure Data Factory 데이터 흐름 내에서 사용할 수 없습니다. Mongo에 연결된 서비스가 직접 지원될 때까지 Azure Cosmos DB for NoSQL에 연결된 서비스 인터페이스와 함께 MongoDB용 API 계정 엔드포인트를 임시방편으로 사용할 수 있습니다.

새 NoSQL 연결된 서비스에 대한 인터페이스에서 수동으로 입력을 선택하여 Azure Cosmos DB 계정 정보를 제공합니다. 여기서는 Mongo DB 엔드포인트(예: mongodb://<account-name>.mongo.cosmos.azure.com:10255/) 대신 계정의 NoSQL 문서 엔드포인트(예: https://<account-name>.documents.azure.com:443/)를 사용합니다.

다음 단계