Azure Cosmos DB SQL API 컨테이너가 /customerId로 파티션되어 있습니다. 주문이 접수되면 서비스는 다음 작업을 원자적으로 수행해야 합니다. (1) 주문 문서를 생성하고, (2) 고객 프로필의 openOrderCount를 업데이트하며, (3) 고객의 장바구니 문서를 삭제합니다. 세 문서 모두 동일한 customerId 값을 공유합니다. 서버 측 저장 프로시저를 사용하지 않고 모든 작업이 함께 성공하거나 실패하도록 하려면 어떻게 해야 합니까?
정답 선택
옵션을 탭하여 정답을 확인하세요.
정답: 동일한 PartitionKey 값(customerId와 동일)으로 생성, 교체 및 삭제 작업을 발행하려면 Azure Cosmos DB SDK의 TransactionalBatch를 사용합니다..
이것이 정답인 이유
정답은 TransactionalBatch를 사용하는 것입니다. Azure Cosmos DB의 TransactionalBatch는 동일한 논리 파티션 키(여기서는 customerId) 내에서 여러 작업을 원자적으로 그룹화할 수 있도록 합니다. 이는 모든 작업이 함께 성공하거나 실패하는 ACID 트랜잭션을 보장합니다. "다중 파티션 트랜잭션을 허용하도록 계정 수준 옵션을 설정하여 교차 파티션 ACID 트랜잭션을 활성화합니다"는 Cosmos DB에 존재하지 않는 기능입니다. Cosmos DB는 단일 논리 파티션 내에서만 ACID 트랜잭션을 지원합니다. "Change Feed Processor를 사용하여 주문 생성 후 업데이트를 트리거하고 최종 일관성을 위해 재시도에 의존합니다"는 최종 일관성을 제공하며, 즉각적인 원자성을 보장하지 않습니다. "ETag로 보호되는 세 가지 개별 요청을 수행합니다. 하나가 실패하면 모두 성공할 때까지 다른 요청을 재시도합니다"는 수동으로 트랜잭션을 관리하는 복잡한 방법이며, 경쟁 조건에 취약하고 원자성을 완전히 보장하지 못합니다.
끝없는 정답 찾기 없이 시험 합격
이 시험에 대한 모든 검증된 문제와 설명을 한곳에서 얻고, 준비 시간을 몇 시간 절약하세요. 1,000개 이상의 자격증 · 20개 이상의 언어 · 무료로 시작.
더 빠르게 시험 합격 → 카드 필요 없음