Unidades de solicitação (RUs) no Cosmos DB (no Azure e no Fabric)

O Cosmos DB (no Azure e fabric) normaliza o custo de todas as operações de banco de dados usando RUs (Unidades de Solicitação) e mede o custo com base na taxa de transferência (Unidades de Solicitação por segundo, RU/s). A unidade de solicitação é uma moeda de desempenho que abstrai os recursos do sistema, como CPU (processamento), IOPS (operações de entrada/saída) e memória necessária para executar as operações de banco de dados compatíveis com o Cosmos DB. Independentemente de a operação do banco de dados ser uma operação de gravação, uma leitura pontual ou uma consulta, ela é sempre medida em RUs.

Por exemplo, uma leitura de ponto é o nome usado para se referir à busca de um único item por sua ID e valor de chave de partição. Um ponto de leitura para um item de 1 KB é equivalente a uma Unidade de Solicitação (RU).

Você pode categorizar operações comuns de banco de dados em tipos específicos e fazer suposições razoáveis sobre o número de unidades de solicitação consumidas por cada tipo de operação:

Operation Description
Operação de leitura Consome uma RU
Operação de inserção Consome um número variável de RUs
Operação upsert Consome um número variável de RUs
Operação de exclusão Consome um número variável de RUs
Operação de consulta Consome um número variável de RUs, potencialmente mais do que operações pontuais

Importante

O Microsoft Fabric relata todo o uso e cobrança usando unidades de capacidade. O Cosmos DB no Microsoft Fabric normaliza internamente o custo de todas as operações de banco de dados usando Unidades de Solicitação (ou RUs, enfim) e mede o custo com base na taxa de transferência (Unidades de Solicitação por segundo, RU/s). As RU/s do Cosmos DB são convertidas em CUs (unidades de capacidade) no Fabric para fins de uso e cobrança.

Diagrama mostrando operações de banco de dados consumindo unidades de solicitação com base em CPU, memória e IOPS.

Para gerenciar e planejar a capacidade, o Cosmos DB garante que o número de RUs para uma determinada operação de banco de dados em um determinado conjunto de dados seja determinístico. Você pode analisar o cabeçalho de resposta para rastrear o número de RUs consumidas por qualquer operação de banco de dados. Quando você entende os fatores que afetam os custos de RU e os requisitos de taxa de transferência da sua aplicação, pode executar sua aplicação de forma econômica. A próxima seção detalha os fatores mencionados anteriormente que afetam o consumo de RU.

Considerações

Ao estimar o número de RUs consumidas por sua carga de trabalho, considere os seguintes fatores:

  • Tamanho do item: À medida que o tamanho de um item aumenta, o número de RUs consumidas para ler ou escrever o item também aumenta.

  • Indexação de itens: Por padrão, cada item é indexado automaticamente. Menos RUs serão consumidas se você optar por não indexar alguns de seus itens em um contêiner.

  • Número de propriedades do item: Considerando que a indexação padrão esteja habilitada em todas as propriedades, o número de RUs consumidas para gravar um item aumenta à medida que o número de propriedades do item aumenta.

  • Propriedades indexadas: Uma política de índice em cada contêiner determina quais propriedades são indexadas por padrão. Para reduzir o consumo de RU para operações de gravação, limite o número de propriedades indexadas.

  • Tipo de leituras: as leituras pontuais custam menos RUs do que as consultas.

  • Padrões de consulta: A complexidade de uma consulta afeta quantas RUs são consumidas por uma operação. Fatores que afetam o custo das operações de consulta incluem:

    • O número de resultados da consulta

    • O número de predicados

    • A natureza dos predicados

    • O número de funções definidas pelo usuário

    • O tamanho dos dados de origem

    • O tamanho do conjunto de resultados

    • O número e o tamanho das propriedades projetadas de uma consulta

Observação

A mesma consulta sobre os mesmos dados sempre custa o mesmo número de RUs em execuções repetidas.