Sdílet prostřednictvím


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

PLATÍ PRO: NoSQL

Azure Cosmos DB používá schéma dělení na základě 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í funkci hash, 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ů, považují se tyto logické oddíly za stejný logický oddíl služby. To může vést k problémům, jako je nesprávná kvóta velikosti oddílů, nesprávné použití jedinečných indexů napříč klíči oddílu a nerovnoměrné rozdělení úložiště. Pro vyřešení tohoto problému se zavádějí velké klíče oddílů. Azure Cosmos DB teď podporuje velké klíče oddílů s hodnotami až 2 kB.

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

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

Kontejnery vytvořené pomocí webu Azure Portal ve výchozím nastavení používají velký klíč oddílu.

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

Pokud chcete vytvořit kontejner s podporou velkého klíče oddílu, přečtěte si téma

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 ho na PartitionKeyDefinitionVersion.V2.

Poznámka:

Ve výchozím nastavení nepodporují všechny kontejnery vytvořené pomocí sady .NET SDK V2 velké klíče oddílů. Ve výchozím nastavení podporují všechny kontejnery vytvořené pomocí sady .NET SDK V3 velké klíče 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 Java 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 uvnitř 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