큰 파티션 키를 사용하는 컨테이너 만들기
적용 대상: NoSQL
Azure Cosmos DB는 해시 기반 분할 구성표를 사용하여 데이터의 수평 확장을 구현합니다. 2019년 5월 3일 이전에 만든 모든 Azure Cosmos DB 컨테이너는 파티션 키의 처음 101바이트를 기반으로 해시를 계산하는 해시 함수를 사용합니다. 처음 101바이트가 동일한 파티션 키가 여러 개 있는 경우 해당 논리 파티션은 서비스에서 동일한 논리 파티션으로 간주됩니다. 이로 인해 잘못된 파티션 크기 할당량, 파티션 키 전체에 잘못 적용되는 고유 인덱스 및 균등하지 않은 스토리지 배포와 같은 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해 큰 파티션 키가 도입되었습니다. 이제 Azure Cosmos DB는 최대 2KB의 값이 있는 큰 파티션 키를 지원합니다.
큰 파티션 키는 최대 2KB의 큰 파티션 키에서 고유한 해시를 생성할 수 있는 향상된 버전의 해시 함수를 사용하도록 설정하여 지원됩니다. 이 기능을 지원하지 않는 이전 Azure Cosmos DB SDK 또는 애플리케이션을 지원해야 하는 경우를 제외하고는 항상 큰 파티션 키를 지원하도록 컨테이너를 구성하는 것이 가장 좋습니다.
큰 파티션 키 만들기(Azure Portal)
Azure Portal을 사용하여 만들어진 컨테이너는 기본적으로 큰 파티션 키를 사용합니다.
큰 파티션 키 만들기(PowerShell)
큰 파티션 키를 지원하는 컨테이너를 만들려면 다음을 참조하세요.
큰 파티션 키 만들기(.NET SDK)
.NET SDK를 사용하여 큰 파티션 키를 사용하는 컨테이너를 만들려면 PartitionKeyDefinitionVersion.V2
속성을 지정합니다. 다음 예에서는 PartitionKeyDefinition 개체 내에서 Version 속성을 지정하고 이를 PartitionKeyDefinitionVersion.V2로 설정하는 방법을 보여 줍니다.
참고 항목
기본적으로 .NET SDK V2를 사용하여 만든 모든 컨테이너는 큰 파티션 키를 지원하지 않습니다. 기본적으로 .NET SDK V3을 사용하여 만든 모든 컨테이너는 큰 파티션 키를 지원합니다.
await database.CreateContainerAsync(
new ContainerProperties(collectionName, $"/longpartitionkey")
{
PartitionKeyDefinitionVersion = PartitionKeyDefinitionVersion.V2,
})
지원되는 SDK 버전
큰 파티션 키는 다음 SDK의 최소 버전에서 지원됩니다.
SDK 형식 | 최소 버전 |
---|---|
.NET | 1.18 |
Java 동기 | 2.4.0 |
Java 비동기 | 2.5.0 |
REST API | 2017-05-03 보다 높은 버전 - x-ms-version 요청 헤더 사용 |
Resource Manager 템플릿 | 버전 2 - partitionKey 개체 내에서 "version":2 속성 사용 |
현재 Power BI 및 Azure Logic Apps 내에서 큰 파티션 키를 사용하는 컨테이너를 사용할 수 없습니다. 이러한 애플리케이션에서는 큰 파티션 키를 사용하지 않는 컨테이너를 사용할 수 있습니다.