Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í prvních 101 stejných bajtů, tyto logické oddíly jsou považovány za stejné logické oddíly systémem služby, což vytvoří kolizi klíčů oddílů. To může vést k problémům, jako jsou kolize klíčů oddílů, nesprávná kvóta velikosti oddílů, nesprávná aplikace jedinečných indexů na klíče oddílů a nerovnoměrné rozložení úložného prostoru. 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ů lze podporovat pomocí vylepšené hashovací funkce, která může generovat jedinečnou hashovací hodnotu z klíčů oddílů o velikosti až 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ů. Povolení velkých klíčů oddílů je možné provést pouze při vytváření kontejneru. Pokud máte existující kontejner, který nepoužívá velké klíče oddílů, budete muset vytvořit nový kontejner a data do něj migrovat.
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řte velký klíč 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. Bez velkého klíče oddílu můžete kontejnery používat v těchto aplikacích.