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 skapats före den 3 maj 2019 använder en hash-funktion 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 stöder nu 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. Vi rekommenderar att du, 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, alltid konfigurerar containern med stöd för stora partitionsnycklar.

Skapa en stor partitionsnyckel (Azure Portal)

Om du vill skapa en stor partitionsnyckel kontrollerar du att partitionsnyckeln är större än 101 byte när du skapar en ny container med hjälp av Azure Portal. Avmarkera kryssrutan om du inte behöver stora partitionsnycklar eller om du har program som körs på SDK:er som är äldre än 1.18.

Skapa stora partitionsnycklar med Azure Portal

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.

Anteckning

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 SDK-versioner:

SDK-typ Lägsta version
.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.

Nästa steg