Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Cosmos DB dá suporte a muitas APIs, como SQL, MongoDB, Cassandra, Gremlin e Table. Cada API tem seu próprio conjunto de operações de banco de dados. Essas operações variam de simples leituras e gravações pontuais a consultas complexas. Cada operação de banco de dados consome recursos do sistema com base na complexidade da operação.
O Azure Cosmos DB normaliza o custo de todas as operações de banco de dados usando Unidades de Solicitação (ou RUs, para abreviar) 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 processamento (CPU), operações de entrada/saída por segundo (IOPS) e memória que são necessários para executar as operações de banco de dados suportadas pelo Azure Cosmos DB. Quer a operação do banco de dados seja uma gravação, leitura pontual ou consulta, as operações são sempre medidas em RUs. Por exemplo, a leitura de um único item por sua ID e chave de partição usa uma Unidade de Solicitação. O item deve ter cerca de 1 KB de tamanho. Esse tamanho estimado é verdadeiro para qualquer API usada com o Azure Cosmos DB. Você pode modelar seus custos de taxa de transferência usando a Calculadora de Capacidade do Azure Cosmos DB.
A imagem seguinte mostra a ideia de alto nível das RUs:
Para gerir e planear capacidade, o Azure Cosmos DB assegura que o número de RUs para uma determinada operação de base de dados sobre um determinado conjunto de dados é determinista. Você pode examinar o cabeçalho de resposta para controlar o número de RUs consumidas por qualquer operação de banco de dados. Quando compreender os fatores que afetam os custos das RU e os requisitos de débito da sua aplicação, pode executar o custo da aplicação de forma eficiente.
O tipo de conta do Azure Cosmos DB que está a utilizar determina a forma como as RU consumidas são cobradas. Existem três modos nos quais pode criar uma conta:
Modo de taxa de transferência provisionada: nesse modo, você atribui o número de RUs para seu aplicativo por segundo em incrementos de 100 RUs por segundo. Para dimensionar o débito aprovisionado à aplicação, pode aumentar ou diminuir o número de RU a qualquer momento em incrementos ou decréscimos de 100 RU. Pode efetuar as suas alterações através de programação ou do portal do Azure. Você é cobrado por hora com base no número de RUs por segundo provisionados. Para obter mais informações, consulte Taxa de transferência provisionada.
Pode atribuir o débito em duas granularidades diferentes:
Contêineres: para obter mais informações, consulte Atribuir taxa de transferência a um contêiner do Azure Cosmos DB.
Bancos de dados: para obter mais informações, consulte Atribuir taxa de transferência a um banco de dados do Azure Cosmos DB.
Modo sem servidor: nesse modo, você não precisa atribuir nenhuma taxa de transferência ao criar recursos em sua conta do Azure Cosmos DB. No final do período de faturação, é-lhe cobrado o número de Unidades de Pedido consumidas pelas operações da base de dados. Para saber mais, veja o artigo Débito sem servidor.
Modo de dimensionamento automático: neste modo, você pode dimensionar automática e instantaneamente a taxa de transferência (RU/s) do seu banco de dados ou contêiner com base em seu uso. Esta operação de dimensionamento não afeta a disponibilidade, a latência, o débito nem o desempenho da carga de trabalho. Esse modo é adequado para cargas de trabalho de missão crítica que têm padrões de tráfego variáveis ou imprevisíveis e exigem SLAs (Service Level Agreements, contratos de nível de serviço) com alto desempenho e escala. Para saber mais, veja o artigo sobre o débito de dimensionamento automático.
Considerações da Unidade de Pedido
Ao estimar o número de RUs consumidas pela 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 gravar o item também aumenta.
Indexação de itens: por padrão, cada item é indexado automaticamente. São consumidas menos RUs se optar por não indexar alguns dos seus itens num contentor.
Contagem de propriedades do item: supondo que a indexação padrão esteja em todas as propriedades, o número de RUs consumidas para gravar um item aumenta à medida que a contagem 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 RUs para operações de escrita, limite o número de propriedades indexadas.
Consistência de dados: Os níveis de consistência de obsoletos fortes e limitados consomem aproximadamente duas vezes mais RUs durante a execução de operações de leitura quando comparados aos de outros níveis de consistência relaxados.
Tipo de leituras: as leituras pontuais custam menos RUs do que as consultas.
Padrões de consulta: a complexidade de uma consulta afeta quantos RUs são consumidos para uma operação. Os 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 utilizador
O tamanho dos dados de origem
O tamanho do conjunto de resultados
Projeções
A mesma consulta nos mesmos dados sempre custa o mesmo número de RUs em execuções repetidas.
Uso de scripts: Assim como as consultas, os procedimentos armazenados e os gatilhos consomem RUs com base na complexidade das operações executadas. À medida que desenvolve a sua aplicação, inspecione o cabeçalho de encargos de pedidos para compreender melhor quanta capacidade de RUs é consumida pelas operações.
Solicitar unidades e várias regiões
Se você atribuir RUs 'R' em um contêiner (ou banco de dados) do Azure Cosmos DB, o Azure Cosmos DB garantirá que as RUs 'R' estejam disponíveis em cada região associada à sua conta do Azure Cosmos DB. Não é possível atribuir seletivamente RUs a uma região específica. As RUs provisionadas em um contêiner (ou banco de dados) do Azure Cosmos DB são provisionadas em todas as regiões associadas à sua conta do Azure Cosmos DB.
Supondo que um contêiner do Azure Cosmos DB esteja configurado com RUs 'R' e haja regiões 'N' associadas à conta do Azure Cosmos DB, o total de RUs disponíveis globalmente no contêiner = R x N.
Sua escolha de modelo de consistência também afeta a taxa de transferência. Você pode obter aproximadamente 2x taxa de transferência de leitura para os níveis de consistência mais relaxados (sessão, prefixo *consistente e eventual consistência) em comparação com níveis de consistência mais fortes (obsoletos limitados ou consistência forte ).