Vytvoření kontejnerů s velkým klíčem oddílu

PLATÍ PRO: NoSQL

Azure Cosmos DB používá schéma dělení založené na hodnotě hash k dosažení horizontálního škálování dat. Všechny kontejnery Azure Cosmos DB vytvořené před 3. květnem 2019 používají hashovací funkci, která vypočítá hodnotu hash na základě prvních 101 bajtů klíče oddílu. Pokud existuje více klíčů oddílů, které mají stejných prvních 101 bajtů, služba tyto logické oddíly považuje za stejný logický oddíl. To může vést k problémům, jako je nesprávná kvóta velikosti oddílu, nesprávné použití jedinečných indexů napříč klíči oddílu nebo nerovnoměrná distribuce úložiště. Za účelem vyřešení tohoto problému jsou zavedeny velké klíče oddílů. Azure Cosmos DB teď podporuje klíče velkých oddílů s hodnotami až 2 kB.

Klíče velkých oddílů jsou podporovány povolením rozšířené verze hashovací funkce, která může generovat jedinečnou hodnotu hash z klíčů velkých oddílů až do velikosti 2 kB. Osvědčeným postupem je, že pokud nepotřebujete podporu starší sady SDK služby Azure Cosmos DB nebo aplikace, která tuto funkci nepodporuje, doporučujeme vždy nakonfigurovat kontejner s podporou klíčů velkých oddílů.

Vytvoření velkého klíče oddílu (Azure Portal)

Pokud chcete vytvořit velký klíč oddílu, zaškrtněte při vytváření nového kontejneru pomocí Azure Portal možnost Klíč oddílu je větší než 101 bajtů. Zaškrtnutí políčka zrušte, pokud nepotřebujete velké klíče oddílů nebo pokud máte aplikace spuštěné na sadách SDK verze starší než 1.18.

Vytvoření klíčů velkých oddílů pomocí Azure Portal

Vytvoření klíče velkého oddílu (PowerShell)

Informace o vytvoření kontejneru s podporou velkého klíče oddílu najdete tady:

Vytvoření velkého klíče oddílu (.NET SDK)

Pokud chcete vytvořit kontejner s velkým klíčem oddílu pomocí sady .NET SDK, zadejte PartitionKeyDefinitionVersion.V2 vlastnost . Následující příklad ukazuje, jak zadat Version vlastnost v rámci PartitionKeyDefinition objektu a nastavit ji na PartitionKeyDefinitionVersion.V2.

Poznámka

Ve výchozím nastavení nepodporují všechny kontejnery vytvořené pomocí sady .NET SDK verze 2 velké klíče oddílů. Ve výchozím nastavení podporují všechny kontejnery vytvořené pomocí sady .NET SDK verze 3 klíče velkých oddílů.

await database.CreateContainerAsync(
    new ContainerProperties(collectionName, $"/longpartitionkey")
    {
        PartitionKeyDefinitionVersion = PartitionKeyDefinitionVersion.V2,
    })

Podporované verze sady SDK

Klíče velkých oddílů jsou podporovány s následujícími minimálními verzemi sad SDK:

Typ sady SDK Minimální verze
.NET 1.18
Synchronizace Javy 2.4.0
Java Async 2.5.0
REST API verze vyšší než 2017-05-03 pomocí hlavičky x-ms-version požadavku.
Šablona Resource Manageru verze 2 pomocí "version":2 vlastnosti v rámci objektu partitionKey .

V současné době nemůžete v Power BI a Azure Logic Apps používat kontejnery s velkým klíčem oddílu. Z těchto aplikací můžete použít kontejnery bez velkého klíče oddílu.

Další kroky