Tworzenie kontenerów z dużym kluczem partycji
DOTYCZY: NoSQL
Usługa Azure Cosmos DB używa schematu partycjonowania opartego na skrótach w celu osiągnięcia skalowania danych w poziomie. Wszystkie kontenery usługi Azure Cosmos DB utworzone przed 3 maja 2019 r. używają funkcji skrótu, która oblicza skrót na podstawie pierwszych 101 bajtów klucza partycji. Jeśli istnieje wiele kluczy partycji, które mają te same pierwsze 101 bajtów, te partycje logiczne są traktowane jako ta sama partycja logiczna przez usługę. Może to prowadzić do problemów, takich jak nieprawidłowy limit przydziału rozmiaru partycji, nieprawidłowe stosowanie unikatowych indeksów w kluczach partycji i nierównomierny rozkład magazynu. W celu rozwiązania tego problemu wprowadzono duże klucze partycji. Usługa Azure Cosmos DB obsługuje teraz duże klucze partycji z wartościami do 2 KB.
Duże klucze partycji są obsługiwane przez włączenie rozszerzonej wersji funkcji skrótu, która może wygenerować unikatowy skrót z dużych kluczy partycji do 2 KB. Najlepszym rozwiązaniem jest, jeśli nie potrzebujesz obsługi starszego zestawu SDK usługi Azure Cosmos DB lub aplikacji, która nie obsługuje tej funkcji, zawsze zaleca się skonfigurowanie kontenera z obsługą dużych kluczy partycji.
Tworzenie dużego klucza partycji (witryna Azure Portal)
Kontenery utworzone przy użyciu witryny Azure Portal domyślnie używają dużego klucza partycji.
Tworzenie dużego klucza partycji (PowerShell)
Aby utworzyć kontener z obsługą dużego klucza partycji, zobacz:
Tworzenie dużego klucza partycji (.NET SDK)
Aby utworzyć kontener z dużym kluczem partycji przy użyciu zestawu .NET SDK, określ PartitionKeyDefinitionVersion.V2
właściwość . W poniższym przykładzie pokazano, jak określić właściwość Version w obiekcie PartitionKeyDefinition i ustawić ją na PartitionKeyDefinitionVersion.V2.
Uwaga
Domyślnie wszystkie kontenery utworzone przy użyciu zestawu SDK platformy .NET w wersji 2 nie obsługują dużych kluczy partycji. Domyślnie wszystkie kontenery utworzone przy użyciu zestawu SDK platformy .NET w wersji 3 obsługują duże klucze partycji.
await database.CreateContainerAsync(
new ContainerProperties(collectionName, $"/longpartitionkey")
{
PartitionKeyDefinitionVersion = PartitionKeyDefinitionVersion.V2,
})
Obsługiwane wersje zestawu SDK
Duże klucze partycji są obsługiwane z następującymi minimalnymi wersjami zestawów SDK:
Typ zestawu SDK | Minimalna wersja |
---|---|
.NET | 1.18 |
Synchronizacja języka Java | 2.4.0 |
Java Async | 2.5.0 |
Interfejs API REST | wersja wyższa niż 2017-05-03 przy użyciu nagłówka x-ms-version żądania. |
Szablon usługi Resource Manager | wersja 2 przy użyciu "version":2 właściwości w partitionKey obiekcie . |
Obecnie nie można używać kontenerów z dużym kluczem partycji w usługach Power BI i Azure Logic Apps. Kontenery można używać bez dużego klucza partycji z tych aplikacji.