Partitionnement et mise à l’échelle horizontale dans Azure Cosmos DBPartitioning and horizontal scaling in Azure Cosmos DB

Cet article explique les partitions physiques et logiques dans Azure Cosmos DB.This article explains physical and logical partitions in Azure Cosmos DB. Il aborde également les meilleures pratiques de mise à l’échelle et de partitionnement.It also discusses best practices for scaling and partitioning.

Partitions logiquesLogical partitions

Une partition logique est constituée d’un ensemble d’éléments dotés de la même clé de partition.A logical partition consists of a set of items that have the same partition key. Par exemple, si tous les éléments d’un conteneur incluent la propriété City, vous pouvez utiliser City comme clé de partition pour le conteneur.For example, in a container where all items contain a City property, you can use City as the partition key for the container. Des groupes d’éléments ayant des valeurs spécifiques pour City, telles que London, Paris et NYC, forment des partitions logiques distinctes.Groups of items that have specific values for City, such as London, Paris, and NYC, form distinct logical partitions. Vous n’avez pas à vous soucier de la suppression d’une partition lorsque les données sous-jacentes sont supprimées.You don't have to worry about deleting a partition when the underlying data is deleted.

Dans Azure Cosmos DB, un conteneur est l’unité d’extensibilité de base.In Azure Cosmos DB, a container is the fundamental unit of scalability. Les données qui sont ajoutées au conteneur et le débit que vous approvisionnez sur celui-ci sont automatiquement partitionnés (horizontalement) sur un ensemble de partitions logiques.Data that's added to the container and the throughput that you provision on the container are automatically (horizontally) partitioned across a set of logical partitions. Les données et le débit sont partitionnés en fonction de la clé de partition que vous spécifiez pour le conteneur Azure Cosmos.Data and throughput are partitioned based on the partition key you specify for the Azure Cosmos container. Pour plus d’informations, consultez Créer un conteneur Azure Cosmos.For more information, see Create an Azure Cosmos container.

Une partition logique définit également la portée des transactions de base de données.A logical partition also defines the scope of database transactions. Vous pouvez mettre à jour les éléments d’une partition logique via une transaction avec isolement de capture instantanée.You can update items within a logical partition by using a transaction with snapshot isolation. Lorsque de nouveaux éléments sont ajoutés à un conteneur, de nouvelles partitions logiques sont créées de façon transparente par le système.When new items are added to a container, new logical partitions are transparently created by the system.

Partitions physiquesPhysical partitions

Un conteneur Azure Cosmos est mis à l’échelle en répartissant les données et le débit sur un grand nombre de partitions logiques.An Azure Cosmos container is scaled by distributing data and throughput across a large number of logical partitions. En interne, une ou plusieurs partitions logiques sont mappées sur une partition physique composée d’un ensemble de réplicas, également appelé un jeu de réplicas.Internally, one or more logical partitions are mapped to a physical partition that consists of a set of replicas, also referred to as a replica set. Chaque jeu de réplicas héberge une instance du moteur de base de données Azure Cosmos.Each replica set hosts an instance of the Azure Cosmos database engine. Grâce au jeu de réplicas, les données stockées dans la partition physique sont durables, hautement disponibles et cohérentes.A replica set makes the data stored within the physical partition durable, highly available, and consistent. Une partition physique prend en charge le volume maximal de stockage et d’unités de requête (RU).A physical partition supports the maximum amount of storage and request units (RUs). Chaque réplica qui constitue la partition physique hérite du quota de stockage de la partition.Each replica that makes up the physical partition inherits the partition's storage quota. Tous les réplicas d’une partition physique prennent collectivement en charge le débit alloué à la partition physique.All replicas of a physical partition collectively support the throughput that's allocated to the physical partition.

L’illustration suivante montre comment les partitions logiques sont mappées sur des partitions physiques mondialement distribuées :The following image shows how logical partitions are mapped to physical partitions that are distributed globally:

Image illustrant le partitionnement dans Azure Cosmos DB

Le débit approvisionné pour un conteneur est uniformément réparti entre les partitions physiques.Throughput provisioned for a container is divided evenly among physical partitions. Une conception de clé de partition qui ne distribue pas les requêtes de débit de manière uniforme peut créer des partitions « à chaud ».A partition key design that doesn't distribute the throughput requests evenly might create "hot" partitions. Les partitions à chaud peuvent entraîner une limitation du débit, une utilisation inefficace du débit approvisionné et des coûts plus élevés.Hot partitions might result in rate-limiting and in inefficient use of the provisioned throughput, and higher costs.

Contrairement aux partitions logiques, les partitions physiques sont une implémentation interne du système.Unlike logical partitions, physical partitions are an internal implementation of the system. Vous ne pouvez pas contrôler la taille, le placement ou le nombre de partitions physiques, et vous ne pouvez pas contrôler le mappage entre partitions logiques et partitions physiques.You can't control the size, placement, or count of physical partitions, and you can't control the mapping between logical partitions and physical partitions. En revanche, vous pouvez contrôler le nombre de partitions logiques, la répartition des données, de la charge de travail et du débit en choisissant la clé de partition logique appropriée.However, you can control the number of logical partitions and the distribution of data, workload and throughput by choosing the right logical partition key.

Étapes suivantesNext steps