Créer des conteneurs avec une grande clé de partition

S’APPLIQUE À : NoSQL

Azure Cosmos DB utilise le partitionnement basé sur le hachage pour mettre à l'échelle horizontale les données. Tous les conteneurs Azure Cosmos DB créés avant le 3 mai 2019 utilisent une fonction de hachage calculant le hachage en fonction des 101 premiers octets de la clé de partition. Si les 101 premiers octets de plusieurs clés de partition sont identiques, ces partitions logiques sont considérées comme identiques par le service. Cela peut entraîner des problèmes tels qu’un quota de taille de partition incorrect, l’application incorrecte d’index uniques entre les clés de partition et une répartition inégale du stockage. Les grandes clés de partition permettent d'y remédier. Azure Cosmos DB prend désormais en charge les grandes clés de partition avec des valeurs jusqu'à 2 Ko.

Les grandes clés de partition sont prises en charge via l’activation d’une version améliorée de la fonction de hachage, qui peut générer un hachage unique à partir de grande clés de partition jusqu’à 2 Ko. Sauf si vous avez besoin de prendre en charge un ancien kit SDK Azure Cosmos DB ou une application qui ne prend pas en charge cette fonctionnalité, une bonne pratique consiste à configurer votre conteneur avec la prise en charge de clés de partition de grande taille.

Créer une grande clé de partition (portail Azure)

Pour créer une grande clé de partition, quand vous créez un conteneur à l’aide du portail Azure, activez l’option Ma clé de partition est supérieure à 101 octets. Désactivez la case à cocher si vous n’avez pas besoin de grandes clés de partition ou si vos applications s’exécutent sur des kits de développement logiciel (SDK) antérieurs à la version 1.18.

Créer de grandes clés de partition à l’aide du portail Azure

Créer une grande clé de partition (PowerShell)

Pour créer un conteneur avec prise en charge d'une grande clé de partition, consultez

Créer une grande clé de partition (kit SDK .NET)

Pour créer un conteneur avec une grande clé de partition à l’aide du kit de développement logiciel (SDK) .NET, vous devez spécifier la propriété PartitionKeyDefinitionVersion.V2. L’exemple suivant montre comment spécifier la propriété Version de l’objet PartitionKeyDefinition et la définir sur PartitionKeyDefinitionVersion.V2.

Notes

Par défaut, aucun conteneur créé à l’aide du kit SDK .NET V2 ne prend en charge les grandes clés de partition. Par défaut, tous les conteneurs créés à l’aide du kit SDK .NET V3 prennent en charge les grandes clés de partition.

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

Versions prises en charge du kit de développement logiciel (SDK)

Les grandes clés de partition sont prises en charge avec les versions minimales suivantes des kits de développement logiciel (SDK) :

Type de kit de développement logiciel (SDK) Version minimale
.NET 1.18
Java sync 2.4.0
Java Async 2.5.0
API REST version ultérieure à 2017-05-03 à l’aide de l'en-tête de requête x-ms-version.
Modèle Resource Manager version 2 à l’aide de la propriété "version":2 dans l’objet partitionKey.

Actuellement, vous ne pouvez pas utiliser de conteneurs avec de grandes clés de partition dans Power BI et Azure Logic Apps. Seuls les conteneurs sans grande clé de partition sont possibles pour ces applications.

Étapes suivantes