Azure Cosmos DB como um repositório de valores de chave – visão geral do custo
APLICA-SE A: NoSQL
O Azure Cosmos DB é um serviço de multimodelo de banco de dados distribuído globalmente para a criação fácil de aplicativos altamente disponíveis de grande escala. Por padrão, Azure Cosmos DB indexa de forma automática e eficiente todos os dados ingeridos. Isso permite consultas SQL (e JavaScript) rápidas e consistentes nos dados.
Este artigo descreve o custo do Azure Cosmos DB para operações simples de gravação e leitura quando ele é usado como um repositório de chaves/valores. Operações de gravação incluem inserções, substituições, exclusões e upserts de itens de dados. Além de garantir um SLA com disponibilidade de 99,999% para todas as contas de várias regiões, o Azure Cosmos DB oferece latência <10 ms garantida para leituras e para as gravações (indexadas), respectivamente, na casa do percentil 99.
Por que usamos RUs (Unidades de Solicitação)
O desempenho do Azure Cosmos DB se baseia na quantidade de taxa de transferência provisionada expressa em Unidades de Solicitação (RU/s). O provisionamento ocorre a uma granularidade de segundos e é adquirido em RU/s (não deve ser confundido com a cobrança por hora). RUs devem ser consideradas como uma abstração lógica (uma moeda) que simplifica o provisionamento da taxa de transferência necessária para o aplicativo. Os usuários não precisam pensar em diferenciar entre taxa de transferência de leitura e gravação. O modelo de moeda única de RUs cria eficiência no compartilhamento da capacidade provisionada entre leituras e gravações. Esse modelo de capacidade provisionada permite que o serviço forneça uma taxa de transferência previsível e consistente, baixa latência garantida e alta disponibilidade. Finalmente, embora o modelo de RU seja usado para representar a taxa de transferência, cada RU provisionado também tem uma quantidade definida de recursos (por exemplo, memória, núcleos/CPU e IOPS).
Por ser um sistema de banco de dados distribuído globalmente, o Azure Cosmos DB é o único serviço do Azure que fornece SLAs abrangentes cobrindo latência, taxa de transferência, consistência e alta disponibilidade. A produtividade que você provisiona é aplicada a cada uma das regiões associadas à sua conta do Azure Cosmos DB. Para leituras, o Azure Cosmos DB oferece vários níveis de consistência bem definidos para sua escolha.
A tabela a seguir mostra o número de RUs necessário para executar operações de leitura e gravação com base em um item de dados de tamanho de 1 KB e 100 KBs com a indexação automática padrão desativada.
Tamanho do Item | 1 Leitura | 1 Gravação |
---|---|---|
1 KB | 1 RU | 5 RUs |
100 KB | 10 RUs | 50 RUs |
Custo de leituras e gravações
Se você provisionar 1.000 RU/s, isso totaliza de 3,6 milhões de RU/hora e custará $0,08 por hora (nos EUA e Europa). Para um item de dados com 1KB, isso significa que você pode consumir 3,6 milhões de leituras ou 0,72 m de gravações (3,6 milhões de RU/5) usando sua taxa de transferência provisionada. Ao normalizar para milhões de leituras e gravações, o custo seria de $0,022/milhões de leituras ($0,08/3,6) e $0,111/milhões de gravações ($0,08/0,72). O custo por milhão se torna mínimo, conforme mostra a tabela a seguir.
Tamanho do Item | Custo de 1 milhão de leituras | Custo de 1 milhão de gravações |
---|---|---|
1 KB | $ 0,022 | $ 0,111 |
100 KB | $ 0,222 | $ 1,111 |
A maioria dos repositórios de blob ou de objeto básicos cobra $ 0,40 por um milhão de transações de leitura, e $ 5 por um milhão de transações de gravação. Se for utilizado de forma adequada, o Azure Cosmos DB poderá ser até 98% mais barato do que essas outras soluções (para transações de 1 KB).
Próximas etapas
- Use a calculadora de RU para estimar a taxa de transferência para suas cargas de trabalho.