Creare contenitori con chiave di partizione di grandi dimensioni

SI APPLICA A: NoSQL

Azure Cosmos DB usa lo schema di partizionamento basato su hash per ottenere il ridimensionamento orizzontale dei dati. Tutti i contenitori di Azure Cosmos DB creati prima del 3 maggio 2019 usano una funzione hash che calcola l'hash in base ai primi 101 byte della chiave di partizione. Se sono presenti più chiavi di partizione con gli stessi primi 101 byte, tali partizioni logiche vengono considerate come la stessa partizione logica dal servizio. Ciò può causare problemi come la quota delle dimensioni della partizione non corretta, gli indici univoci applicati erroneamente tra le chiavi di partizione e la distribuzione non uniforme dell'archiviazione. Per risolvere questo problema vengono introdotte chiavi di partizione di grandi dimensioni. Azure Cosmos DB supporta ora chiavi di partizione di grandi dimensioni con valori fino a 2 KB.

Le chiavi di partizione di grandi dimensioni sono supportate abilitando una versione avanzata della funzione hash, che può generare un hash univoco da chiavi di partizione di grandi dimensioni fino a 2 KB. Come procedura consigliata, a meno che non sia necessario il supporto per azure Cosmos DB SDK o un'applicazione meno recente che non supporta questa funzionalità, è sempre consigliabile configurare il contenitore con il supporto per chiavi di partizione di grandi dimensioni.

Creare una chiave di partizione di grandi dimensioni (portale di Azure)

Per creare una chiave di partizione di grandi dimensioni, quando si crea un nuovo contenitore usando il portale di Azure, selezionare l'opzione Chiave di partizione superiore a 101 byte. Deselezionare la casella di controllo se non sono necessarie chiavi di partizione di grandi dimensioni o se sono presenti applicazioni in esecuzione in SDK versione precedente alla 1.18.

Creare chiavi di partizione di grandi dimensioni usando portale di Azure

Creare una chiave di partizione di grandi dimensioni (PowerShell)

Per creare un contenitore con supporto di chiavi di partizione di grandi dimensioni, vedere:

Creare una chiave di partizione di grandi dimensioni (.NET SDK)

Per creare un contenitore con una chiave di partizione di grandi dimensioni usando .NET SDK, specificare la PartitionKeyDefinitionVersion.V2 proprietà . Nell'esempio seguente viene illustrato come specificare la proprietà Version all'interno dell'oggetto PartitionKeyDefinition e impostarla su PartitionKeyDefinitionVersion.V2.

Nota

Per impostazione predefinita, tutti i contenitori creati con .NET SDK V2 non supportano chiavi di partizione di grandi dimensioni. Per impostazione predefinita, tutti i contenitori creati con .NET SDK V3 supportano chiavi di partizione di grandi dimensioni.

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

Versioni di SDK supportate

Le chiavi di partizione Di grandi dimensioni sono supportate con le versioni minime seguenti degli SDK:

Tipo di SDK Versione minima
.NET 1.18
Sincronizzazione Java 2.4.0
Java Async 2.5.0
API REST versione successiva rispetto 2017-05-03 all'uso dell'intestazione della x-ms-version richiesta.
Modello di Resource Manager versione 2 usando la "version":2 proprietà all'interno dell'oggetto partitionKey .

Attualmente non è possibile usare contenitori con chiave di partizione di grandi dimensioni in Power BI e App per la logica di Azure. È possibile usare contenitori senza una chiave di partizione di grandi dimensioni da queste applicazioni.

Passaggi successivi