Skapa behållare med stor partitionsnyckel

GÄLLER FÖR: SQL API

Azure Cosmos DB använder hash-baserad partitionerings schema för att uppnå horisontell skalning av data. Alla Azure Cosmos-behållare som skapats före maj 3 2019 använder en hash-funktion som beräknar hash baserat på den första 100 byte i partitionsnyckel. Om det finns flera partitionstyper som har samma första 100 byte betraktas dessa logiska partitioner som samma logiska partition av tjänsten. Detta kan leda till problem som att kvoten för partitionsstorleken är felaktig och att unika index tillämpas över partitionernas nycklar. Stora partitionsalternativ har introducerats för att lösa det här problemet. Azure Cosmos DB stöder nu stora partitionsnyckel med värden upp till 2 KB.

Stora partitionsuppsättningar stöds med hjälp av funktionerna i en förbättrad version av hash-funktionen, som kan generera en unik hash från stora partitionsnyckel upp till 2 KB. Den här hash-versionen rekommenderas också för scenarier med hög partitionsnyckel, oberoende av storleken på partitionsnyckel. En kardinalitet för partitionsnyckel definieras som antalet unika logiska partitioner, till exempel i ordningen ~ 30000 logiska partitioner i en behållare. Den här artikeln beskriver hur du skapar en behållare med en stor partitionsnyckel med hjälp av Azure Portal och olika SDK: er.

Skapa en stor partitionsnyckel (Azure Portal)

Om du vill skapa en stor partitionsnyckel när du skapar en ny behållare med hjälp av Azure Portal, kontrollerar du att nyckeln My partition är större än 100-byte- alternativet. Avmarkera kryss rutan om du inte behöver stora partitionerings nycklar eller om du har program som körs på SDK-versioner som är äldre än 1,18.

Skapa stora partitionsalternativ med Azure Portal

Skapa en stor partitionsnyckel (PowerShell)

Om du vill skapa en behållare med stöd för stor partitionsnyckel, se,

Skapa en stor partitionsnyckel (.NET SDK)

Om du vill skapa en behållare 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 PartitionKeyDefinition-objektet och anger den till PartitionKeyDefinitionVersion. v2.

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

SDK-versioner som stöds

De stora partitionernas nycklar stöds med följande minst 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 genom att använda x-ms-version begär ande huvudet.
Resource Manager-mall version 2 med hjälp av "version":2 egenskapen i partitionKey objektet.

För närvarande kan du inte använda behållare med stor partitionsnyckel i i Power BI och Azure Logic Apps. Du kan använda behållare utan en stor partitionsnyckel från dessa program.

Nästa steg