Particionamento e dimensionamento horizontal no Azure Cosmos DBPartitioning and horizontal scaling in Azure Cosmos DB

Este artigo explica as partições físicas e lógicas no Azure Cosmos DB.This article explains physical and logical partitions in Azure Cosmos DB. Ele também aborda as práticas recomendadas para o dimensionamento e o particionamento.It also discusses best practices for scaling and partitioning.

Partições lógicasLogical partitions

Uma partição lógica consiste em um conjunto de itens que têm a mesma chave de partição.A logical partition consists of a set of items that have the same partition key. Por exemplo, em um contêiner em que todos os itens contêm uma propriedade City, você pode usar City como a chave de partição para o contêiner.For example, in a container where all items contain a City property, you can use City as the partition key for the container. Grupos de itens que têm valores específicos para City, como London, Paris e NYC, formam partições lógicas distintas.Groups of items that have specific values for City, such as London, Paris, and NYC, form distinct logical partitions. Você não precisa se preocupar em excluir uma partição quando os dados subjacentes são excluídos.You don't have to worry about deleting a partition when the underlying data is deleted.

No Azure Cosmos DB, um contêiner é a unidade fundamental de escalabilidade.In Azure Cosmos DB, a container is the fundamental unit of scalability. Os dados que são adicionados ao contêiner e a taxa de transferência que você provisiona no contêiner são automaticamente (horizontalmente) particionados em um conjunto de partições lógicas.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. Os dados e a taxa de transferência são particionados com base na chave de partição especificada para o contêiner Cosmos do Azure.Data and throughput are partitioned based on the partition key you specify for the Azure Cosmos container. Para obter mais informações, consulte criar um contêiner Cosmos do Azure.For more information, see Create an Azure Cosmos container.

Uma partição lógica também define o escopo das transações de banco de dados.A logical partition also defines the scope of database transactions. Você pode atualizar itens em uma partição lógica usando uma transação com isolamento de instantâneo.You can update items within a logical partition by using a transaction with snapshot isolation. Quando novos itens são adicionados a um contêiner, novas partições lógicas são criadas de forma transparente pelo sistema.When new items are added to a container, new logical partitions are transparently created by the system.

Partições físicasPhysical partitions

Um contêiner Cosmos do Azure é dimensionado pela distribuição de dados e taxa de transferência em um grande número de partições lógicas.An Azure Cosmos container is scaled by distributing data and throughput across a large number of logical partitions. Internamente, uma ou mais partições lógicas são mapeadas para uma partição física que consiste em um conjunto de réplicas, também conhecido como um conjunto 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. Cada conjunto de réplicas hospeda uma instância do mecanismo de banco de dados Cosmos do Azure.Each replica set hosts an instance of the Azure Cosmos database engine. Um conjunto de réplicas torna os dados armazenados na partição física durável, altamente disponível e consistente.A replica set makes the data stored within the physical partition durable, highly available, and consistent. Uma partição física dá suporte à quantidade máxima de armazenamento e de unidades de solicitação (RUs).A physical partition supports the maximum amount of storage and request units (RUs). Cada réplica que compõe a partição física herda a cota de armazenamento da partição.Each replica that makes up the physical partition inherits the partition's storage quota. Todas as réplicas de uma partição física dão suporte coletiva à taxa de transferência alocada para a partição física.All replicas of a physical partition collectively support the throughput that's allocated to the physical partition.

A imagem a seguir mostra como as partições lógicas são mapeadas para as partições físicas que são distribuídas globalmente:The following image shows how logical partitions are mapped to physical partitions that are distributed globally:

Uma imagem que demonstra Azure Cosmos DB particionamento

A taxa de transferência provisionada para um contêiner é dividida uniformemente entre as partições físicas.Throughput provisioned for a container is divided evenly among physical partitions. Um design de chave de partição que não distribui as solicitações de taxa de transferência pode, uniformemente, criar partições "ativas".A partition key design that doesn't distribute the throughput requests evenly might create "hot" partitions. As partições quentes podem resultar em limitação de taxa e em uso ineficiente da taxa de transferência provisionada e em custos mais altos.Hot partitions might result in rate-limiting and in inefficient use of the provisioned throughput, and higher costs.

Ao contrário das partições lógicas, as partições físicas são uma implementação interna do sistema.Unlike logical partitions, physical partitions are an internal implementation of the system. Você não pode controlar o tamanho, o posicionamento ou a contagem de partições físicas e não pode controlar o mapeamento entre partições lógicas e partições físicas.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. No entanto, você pode controlar o número de partições lógicas e a distribuição de dados, carga de trabalho e taxa de transferência escolhendo a chave de partição lógica correta.However, you can control the number of logical partitions and the distribution of data, workload and throughput by choosing the right logical partition key.

Passos seguintesNext steps