Skapa containrar med stor partitionsnyckel
GÄLLER FÖR: NoSQL
Azure Cosmos DB använder hash-baserat partitioneringsschema för att uppnå horisontell skalning av data. Alla Azure Cosmos DB-containrar som skapades före den 3 maj 2019 använder en hashfunktion som beräknar hash baserat på partitionsnyckelns första 101 byte. Om det finns flera partitionsnycklar som har samma första 101 byte betraktas dessa logiska partitioner som samma logiska partition av tjänsten. Detta kan leda till problem som att partitionsstorlekskvoten är felaktig, att unika index tillämpas felaktigt på partitionsnycklarna och att lagringen fördelas ojämnt. Stora partitionsnycklar introduceras för att lösa det här problemet. Azure Cosmos DB har nu stöd för stora partitionsnycklar med värden på upp till 2 KB.
Stora partitionsnycklar stöds genom att aktivera en förbättrad version av hash-funktionen, som kan generera en unik hash från stora partitionsnycklar upp till 2 KB. Om du inte behöver stöd för en äldre Azure Cosmos DB SDK eller ett program som inte stöder den här funktionen rekommenderar vi alltid att du konfigurerar containern med stöd för stora partitionsnycklar.
Skapa en stor partitionsnyckel (Azure Portal)
Containrar som skapats med hjälp av Azure Portal använda en stor partitionsnyckel som standard.
Skapa en stor partitionsnyckel (PowerShell)
Information om hur du skapar en container med stöd för stor partitionsnyckel finns i
Skapa en stor partitionsnyckel (.NET SDK)
Om du vill skapa en container med en stor partitionsnyckel med hjälp av .NET SDK anger du PartitionKeyDefinitionVersion.V2
egenskapen. I följande exempel visas hur du anger egenskapen Version i objektet PartitionKeyDefinition och anger den till PartitionKeyDefinitionVersion.V2.
Kommentar
Som standard stöder inte alla containrar som skapats med .NET SDK V2 stora partitionsnycklar. Som standard har alla containrar som skapats med .NET SDK V3 stöd för stora partitionsnycklar.
await database.CreateContainerAsync(
new ContainerProperties(collectionName, $"/longpartitionkey")
{
PartitionKeyDefinitionVersion = PartitionKeyDefinitionVersion.V2,
})
SDK-versioner som stöds
De stora partitionsnycklarna stöds med följande lägsta versioner av SDK:er:
SDK-typ | Minimiversion |
---|---|
.NET | 1.18 |
Java-synkronisering | 2.4.0 |
Java Async | 2.5.0 |
REST-API | högre version än 2017-05-03 med hjälp av begärandehuvudet x-ms-version . |
Resource Manager-mall | version 2 med hjälp "version":2 av egenskapen i partitionKey objektet. |
För närvarande kan du inte använda containrar med stor partitionsnyckel i Power BI och Azure Logic Apps. Du kan använda containrar utan en stor partitionsnyckel från dessa program.