Partitionierung und horizontale Skalierung in Azure Cosmos DBPartitioning and horizontal scaling in Azure Cosmos DB

In diesem Artikel werden physische und logische Partitionen in Azure Cosmos DB erläutert.This article explains physical and logical partitions in Azure Cosmos DB. Außerdem werden bewährte Methoden für Skalierung und Partitionierung behandelt.It also discusses best practices for scaling and partitioning.

Logische PartitionenLogical partitions

Eine logische Partition besteht aus einer Gruppe von Elementen mit demselben Partitionsschlüssel.A logical partition consists of a set of items that have the same partition key. In einen Container, in dem beispielsweise alle Elemente die Eigenschaft City aufweisen, können Sie City als Partitionsschlüssel für den Container verwenden.For example, in a container where all items contain a City property, you can use City as the partition key for the container. Elementgruppen mit bestimmten Werten für City, z.B. London, Paris und NYC, bilden eindeutige logische Partitionen.Groups of items that have specific values for City, such as London, Paris, and NYC, form distinct logical partitions. Sie müssen sich keine Sorgen um das Löschen einer Partition machen, wenn die zugrunde liegenden Daten gelöscht werden.You don't have to worry about deleting a partition when the underlying data is deleted.

In Azure Cosmos DB ist ein Container die grundlegende Einheit für die Skalierbarkeit.In Azure Cosmos DB, a container is the fundamental unit of scalability. Daten, die dem Container hinzugefügt werden, und der Durchsatz, den Sie für den Container bereitstellen, werden automatisch (horizontal) auf eine Gruppe logischer Partitionen verteilt.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. Daten und Durchsatz werden basierend auf dem Partitionsschlüssel partitioniert, den Sie für den Azure Cosmos-Container angeben.Data and throughput are partitioned based on the partition key you specify for the Azure Cosmos container. Weitere Informationen finden Sie unter Erstellen eines Azure Cosmos-Containers.For more information, see Create an Azure Cosmos container.

Eine logische Partition definiert auch den Bereich für Datenbanktransaktionen.A logical partition also defines the scope of database transactions. Sie können Elemente in einer logischen Partition mithilfe einer Transaktion mit Momentaufnahmeisolation aktualisieren.You can update items within a logical partition by using a transaction with snapshot isolation. Wenn einem Container neue Elemente hinzugefügt werden, werden neue logische Partitionen transparent vom System erstellt.When new items are added to a container, new logical partitions are transparently created by the system.

Physische PartitionenPhysical partitions

Ein Azure Cosmos-Container wird skaliert, indem Daten und Durchsatz auf eine große Anzahl logischer Partitionen verteilt werden.An Azure Cosmos container is scaled by distributing data and throughput across a large number of logical partitions. Intern werden eine oder mehrere logische Partitionen einer physischen Partition zugeordnet, die aus einer auch als Replikatgruppe bezeichneten Gruppe von Replikaten besteht.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. Jede Replikatgruppe hostet eine Instanz der Azure Cosmos-Datenbank-Engine.Each replica set hosts an instance of the Azure Cosmos database engine. Eine Replikatgruppe macht die in der physischen Partition gespeicherten Daten dauerhaft, hochverfügbar und konsistent.A replica set makes the data stored within the physical partition durable, highly available, and consistent. Eine physische Partition unterstützt eine maximale Menge an Speicher und Anforderungseinheiten (Request Units, RUs).A physical partition supports the maximum amount of storage and request units (RUs). Jedes Replikat, aus dem die physische Partition besteht, erbt das Speicherkontingent der Partition.Each replica that makes up the physical partition inherits the partition's storage quota. Alle Replikate einer physischen Partition unterstützen gemeinsam den Durchsatz, der der physischen Partition zugeordnet wurde.All replicas of a physical partition collectively support the throughput that's allocated to the physical partition.

Die folgende Abbildung zeigt, wie logische Partitionen physischen Partitionen zugeordnet werden, die global verteilt sind:The following image shows how logical partitions are mapped to physical partitions that are distributed globally:

Abbildung zur Veranschaulichung der Azure Cosmos DB-Partitionierung

Der für einen Container bereitgestellte Durchsatz wird gleichmäßig auf physische Partitionen aufgeteilt.Throughput provisioned for a container is divided evenly among physical partitions. Ein Partitionsschlüsselentwurf, der die Durchsatzanforderungen nicht gleichmäßig verteilt, kann „heiße“ Partitionen verursachen.A partition key design that doesn't distribute the throughput requests evenly might create "hot" partitions. „Heiße“ Partitionen können zu einer Ratenbegrenzung und einer ineffizienten Nutzung des bereitgestellten Durchsatzes sowie zu höheren Kosten führen.Hot partitions might result in rate-limiting and in inefficient use of the provisioned throughput, and higher costs.

Im Gegensatz zu logischen Partitionen sind physische Partitionen eine interne Implementierung des Systems.Unlike logical partitions, physical partitions are an internal implementation of the system. Sie können Größe, Platzierung oder Anzahl physischer Partitionen nicht steuern. Auch die Zuordnung zwischen logischen Partitionen und physischen Partitionen lässt sich nicht steuern.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. Sie können allerdings die Anzahl der logischen Partitionen und die Verteilung der Daten, der Workload und des Durchsatzes steuern, indem Sie den richtigen logischen Partitionsschlüssel auswählen.However, you can control the number of logical partitions and the distribution of data, workload and throughput by choosing the right logical partition key.

Nächste SchritteNext steps