Pular para o conteúdo principal

Azure Cosmos DB: Um banco de dados NoSQL em nuvem de escala global

Descubra como o banco de dados multimodelo e totalmente gerenciado da Microsoft oferece desempenho de baixa latência, escalabilidade elástica e recursos em tempo real para IA, IoT, comércio eletrônico e muito mais.
Atualizado 9 de jun. de 2025  · 12 min lido

À medida que os aplicativos são escalonados globalmente, os bancos de dados tradicionais geralmente não são suficientes. O Azure Cosmos DB, o banco de dados multimodelo e globalmente distribuído da Microsoft, oferece acesso de baixa latência, vários modelos de consistência e dimensionamento contínuo entre regiões. 

Este guia aborda conceitos-chave como contêineres, itens e APIs SQL, essenciais para qualquer engenheiro de nuvem que queira começar (e trabalhar) com o Azure e o Cosmos DB. Você terá uma visão geral prática de sua arquitetura e saberá por que ela é a melhor opção para aplicativos nativos da nuvem e de missão crítica.

O que é o Azure Cosmos DB?

O Azure Cosmos DB é um banco de dados NoSQL totalmente gerenciado no Microsoft Azure, criado para oferecer alta disponibilidade, baixa latência e escalabilidade global. Ele oferece suporte a vários modelos de dados, incluindo documento, valor-chave, gráfico e família de colunas, o que o torna flexível para diversos aplicativos.

Seu principal ponto forte é a distribuição global: Com alguns cliques, os dados podem ser replicados entre as regiões do Azure para que você tenha acesso rápido e local. 

Os desenvolvedores também podem escolher entre vários modelos de consistência para equilibrar o desempenho e a precisão dos dados. Se você é novo no mundo do Azure, recomendo fortemente que leia o seguinte guia para iniciantes no Azure.

Por que usar o Azure Cosmos DB?

O Azure Cosmos DB oferece um poderoso conjunto de recursos adaptados para a criação de aplicativos escalonáveis e de alto desempenho:

Imagem do autor. Por que usar o Cosmos DB?

  • Distribuição global com baixa latência: Replica automaticamente os dados entre as regiões do Azure, garantindo acesso rápido e local para usuários em todo o mundo.
  • Vários níveis de consistência: Escolha entre cinco modelos, Strong, Bounded Staleness, Session, Consistent Prefix e Eventual, para equilibrar consistência, disponibilidade e desempenho.
  • Suporte a vários modelos: Trabalhe com modelos de dados de documento (JSON), valor-chave, gráfico e família de colunas, tornando-o adequado para diversas cargas de trabalho.
  • Alta disponibilidade com SLAs: Com suporte de SLA para operações de leitura e gravação, ideal para sistemas de missão crítica.
  • Escalabilidade elástica: Dimensione automaticamente o rendimento com base na demanda sem tempo de inatividade, mantendo a capacidade de resposta sob cargas variáveis.

Juntos, esses recursos tornam o Cosmos DB uma base sólida para aplicativos nativos da nuvem distribuídos globalmente que exigem desempenho e resiliência em tempo real.

Casos de uso do Azure Cosmos DB

O Azure Cosmos DB é uma opção versátil para aplicativos escalonáveis e em tempo real em vários setores. Sua arquitetura distribuída globalmente e de baixa latência o torna ideal para cenários que exigem alta disponibilidade e acesso rápido aos dados. Aqui estão alguns casos de uso importantes:

  • IA e machine learning: Integra-se a pipelines de IA em tempo real e oferece suporte à pesquisa vetorial, permitindo aplicativos inteligentes, como mecanismos de recomendação e pesquisa semântica.
  • Comércio eletrônico e varejo: Potencializa experiências de compras personalizadas, capturando o comportamento do usuário e fornecendo recomendações instantaneamente. Sua distribuição global garante acesso preciso e de baixa latência aos dados de inventário em todas as regiões.
  • Jogos e mídia social: Lida com estatísticas de jogadores em tempo real, bate-papo e tabelas de classificação com rápido desempenho de leitura/gravação. A consistência no nível da sessão garante experiências tranquilas para os usuários em todo o mundo.
  • IoT e dados de séries temporais: Ingere e processa com eficiência grandes volumes de dados de sensores e telemetria. Ideal para casos de uso como manutenção preditiva, detecção de anomalias e monitoramento em tempo real.

Desde a alimentação de lojas on-line até a habilitação de aplicativos inteligentes orientados por IA, o Cosmos DB oferece a velocidade, a escala e a flexibilidade necessárias para soluções modernas nativas da nuvem. Para entender melhor o que você pode fazer com o Cosmos DB e o Azure, consulte o seguinte Guia de ofertas de nuvem da Microsoft.

Recursos e capacidades do Cosmos DB

Nesta seção, exploraremos os principais recursos que permitem que os desenvolvedores criem aplicativos rápidos, resilientes e inteligentes, incluindo estratégias de modelagem de dados.

Modelagem e indexação de dados

O Azure Cosmos DB permite que os contêineres armazenem documentos JSON sem a necessidade de um esquema predefinido, facilitando a adaptação e a evolução do seu modelo de dados ao longo do tempo.

A indexação no Cosmos DB é automática por padrão, com todos os campos indexados para oferecer suporte a consultas rápidas prontas para uso. No entanto, isso pode levar a um aumento no consumo de unidades de solicitação (RU), especialmente em cargas de trabalho com muita gravação. Para otimizar, os desenvolvedores podem definir políticas de indexação personalizadas. Essas políticas permitem desativar a indexação automática quando desnecessária, especificando caminhos incluídos para campos que devem ser indexados e excluindo campos que não são relevantes.

O Cosmos DB também inclui o recursoChange Feed , que captura inserções e atualizações em tempo real, o que o torna ideal para a criação de sistemas orientados por eventos, acionando fluxos de trabalho ou transmitindo dados para o downstream. Outro recurso útil é o Time-to-Live (TTL), que permite a exclusão automática de documentos após um período especificado.

Particionamento e otimização do desempenho

Para cargas de trabalho que exigem muita gravação, as chaves de partição devem ter alta cardinalidade e distribuição uniforme, como IDs de usuário, registros de data e hora ou regiões geográficas, para evitar partições quentes e limitação. Em cenários de leitura intensa, geralmente é mais eficaz agrupar dados relacionados usando chaves de partição, como IDs de clientes, permitindo acesso eficiente a consultas de intervalo ou ponto. Um particionamento ruim pode levar a uma distribuição desigual dos dados e à degradação do desempenho. Como cada partição lógica é limitada a 20 GB, é importante projetar estratégias de particionamento que evitem sobrecarregar uma única chave.

O desempenho da consulta pode ser aprimorado ainda mais com a criação de padrões de acesso direcionados a partições únicas, pois eles são mais rápidos e eficientes em termos de recursos. As consultas entre partições, embora suportadas, normalmente resultam em latência mais alta e maior consumo de RU, porque elas examinam várias partições. Para reduzir os custos de consulta, os desenvolvedores devem aproveitar as estratégias de indexação (estou pensando em índices compostos) e considerar a aplicação de mecanismos de cache para dados acessados com frequência.

Em termos de taxa de transferência, o Cosmos DB permite que os desenvolvedores configurem as Request Units no nível do contêiner ou do banco de dados. Esse modelo de taxa de transferência ajustável ajuda a garantir que seu aplicativo mantenha o desempenho mesmo quando você estiver passando por algum tipo de condição de pico de carga.

Modelos de consistência e durabilidade de dados

O Azure Cosmos DB oferece cinco níveis de consistência ajustáveis. Isso vai muito além das opções típicas de consistência eventual ou forte encontradas na maioria dos bancos de dados não relacionais.

No nível mais fraco, a consistência eventual oferece a opção mais rápida e mais disponível, mas pode retornar dados obsoletos ou fora de ordem à medida que as réplicas são sincronizadas gradualmente. Um pouco mais forte é o prefixo consistente, que garante que as leituras reflitam a ordem das gravações, embora não necessariamente as mais recentes, o que o torna adequado quando a ordem das operações é mais importante do que o frescor.

A configuração padrão e mais prática para muitos aplicativos é a consistência da sessão, que garante que um cliente sempre lerá suas gravações em uma sessão. A estanqueidade limitada vai um passo além, permitindo um atraso controlado entre gravações e leituras, definido por um intervalo de tempo (T) ou por várias versões (K). Por exemplo, em uma única região, o atraso pode ser limitado a 5 segundos ou 10 versões, enquanto em uma configuração de várias regiões, ele pode se estender a 5 minutos ou 100.000 versões.

Na extremidade mais forte do espectro está a consistência forte, que garante que todas as leituras reflitam a última gravação confirmada em todas as réplicas. Esse nível oferece as garantias mais rigorosas, evitando leituras obsoletas, sujas ou fantasmas, e se assemelha muito ao comportamento dos sistemas tradicionais compatíveis com ACID.

Gravações em várias regiões e disponibilidade global

Um dos recursos de destaque do Azure Cosmos DB é o suporte de gravação em várias regiões por meio da replicação ativa-ativa (vários mestres). Isso permite que os aplicativos executem operações de gravação em várias regiões simultaneamente, reduzindo significativamente a latência para usuários de todo o mundo.

O Cosmos DB também inclui replicação global automática, garantindo que os dados sejam sincronizados entre as regiões do Azure. No caso de uma interrupção regional, o sistema aciona o failover automático para a próxima região disponível.

Embora o Cosmos DB lide automaticamente com a mecânica de sharding e distribuição de dados, os desenvolvedores ainda precisam escolher uma chave de partição adequada para oferecer suporte à distribuição uniforme e ao dimensionamento horizontal eficaz. Essa decisão é especialmente importante para conjuntos de dados grandes que podem exceder o limite de 20 GB por partição lógica. O planejamento antecipado do particionamento ajuda a evitar gargalos e problemas de desempenho à medida que o aplicativo cresce.

Cosmos DB Pricing e gerenciamento de custos

O preço do Azure Cosmos DB é baseado em Unidades de Solicitação (RUs), que refletem os recursos usados para leituras, gravações e consultas. Uma simples leitura de ponto normalmente custa 1 RU.

Modelos de preços

  • Taxa de transferência provisionada: Reserve RUs para cargas de trabalho previsíveis, cobradas por taxa de transferência e armazenamento.
  • Sem servidor: Modelo de pagamento por uso ideal para cargas de trabalho esporádicas ou de baixo tráfego.

Otimização de custos

  • Use o Cosmos DB Profiler para monitorar e otimizar a eficiência da consulta.
  • Ajuste a indexação e o particionamento para reduzir o consumo de RU.
  • Programe as despesas com o Azure Cost Management e defina alertas de uso.
  • Se você escolher o modelo certo e otimizar seu projeto, poderá reduzir significativamente os custos.

Primeiros passos com o Azure Cosmos DB 

Antes de trabalhar com o Azure Cosmos DB, você precisará criar uma conta, escolher sua configuração e criar seu primeiro banco de dados e contêiner. Este guia passo a passo guiará você pelo processo usando o Portal do Azure.

Etapa 1: Inscreva-se em uma conta do Azure e acesse o Cosmos DB por meio do Portal do Azure

Comece fazendo login no Portal do Azure. Nabarra de pesquisa globalna parte superior, digite "Azure Cosmos DB" e selecione-o nos resultados. Na folha do Cosmos DB, clique em "Create" para começar a configurar sua nova instância.

Captura de tela da página de destino principal do Azure

Captura de tela da página de destino principal do Azure Cosmos DB

Etapa 2: Escolha sua API e configure o básico

Selecione Azure Cosmos DB para NoSQL como seu modelo de API (API Core SQL).

Captura de tela do Azure Cosmos DB. Criando uma instância

Em seguida, no painel Básico, insira os detalhes da configuração, incluindo a assinatura do Azure, um grupo de recursos (novo ou existente), um nome de conta globalmente exclusivo e uma região preferida do Azure. As zonas de disponibilidade podem ser deixadas desativadas. O Cosmos DB oferece dois modos de taxa de transferência: taxa de transferência provisionada para cargas de trabalho previsíveis e sem servidor para cenários variáveis ou de baixo tráfego. Escolha o modo que melhor se adapta às necessidades de seu aplicativo durante a configuração. Essas opções também podem ser ajustadas posteriormente, conforme a evolução da carga de trabalho.

Captura de tela do Azure Cosmos DB. Preenchendo os detalhes

Depois de concluído, clique em Revisar + Criare, em seguida, confirme clicando em Criar para iniciar a implementação.

Captura de tela do Azure Cosmos DB. Validando nossa instância

Quando a implantação for concluída, selecione Ir para o recurso para acessar sua nova conta do Cosmos DB.

Captura de tela do Azure Cosmos DB. Informações sobre o recurso que acabamos de criar

Etapa 3: Criar um banco de dados e um contêiner

Navegue até o Explorador de dados a partir do Cosmos DB menu da conta.

Captura de tela do Azure Cosmos DB. Explorando nossos dados

Clique em New Container ( Novo contêiner ) para abrir a caixa de diálogo de configuração. 

Captura de tela do Azure Cosmos DB. Criando um novo contêiner

Defina um novo nome de banco de dados e um nome de contêiner e, o mais importante, especifique uma chave de partição para garantir a distribuição uniforme dos dados e o desempenho ideal. Clique em OK para criar o banco de dados e o contêiner .

Captura de tela do Azure Cosmos DB. Preenchendo as características do nosso contêiner.

Depois de criados, você verá ambos listados na hierarquia do Data Explorer.

Captura de tela do Azure Cosmos DB. Verificação da hierarquia de dados.

Etapa 4: Use o Data Explorer para consultar e gerenciar objetos de banco de dados

No contêiner recém-criado (funcionários), expanda a exibição em árvore e selecione Itens. 

Captura de tela do Azure Cosmos DB. Verificação do contêiner

Clique em Novo item.

Captura de tela do Azure Cosmos DB. Criando um novo item

Insira a amostra de JSON a seguir e clique em Salvar:

{
  "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "name": {
    "first": "Josep",
    "last": "Ferrer"
  },
  "email": "<jferrers@datacampdummy.com>",
  "department": {
    "name": "Data Science"
  }
}

Para testar uma consulta, selecione Nova consulta SQL no menu e digite a seguinte consulta NoSQL, que realiza uma pesquisa sem distinção entre maiúsculas e minúsculas para os funcionários do departamento Logistics.

Captura de tela do Azure Cosmos DB. Verificação do contêiner.

SELECT VALUE {
    "name": CONCAT(e.name.last, " ", e.name.first),
    "department": e.department.name,
    "emailAddresses": [
        e.email
    ]
}
FROM
    employees e
WHERE
    STRINGEQUALS(e.department.name, "logistics", true)

Agora clicamos para executar a consulta. Ele retorna uma saída estruturada:

[
  {
    "name": "Josep Ferrer",
    "department": "Logistics",
    "emailAddresses": [
      "jferrers@datacampdummy.com"
    ]
  }
]

E isso é tudo!

Vantagens e desvantagens do Cosmos DB

Vantagens

  • Alta disponibilidade: A replicação integrada em várias regiões garante confiabilidade e tempo de atividade globais.
  • Flexibilidade do esquema: Oferece suporte a JSON sem esquema com indexação automática para consultas rápidas.
  • Integração de IA: Suporte nativo para pesquisa vetorial e cenários de IA em tempo real.
  • Amplo suporte à API: Compatível com SQL, MongoDB, Cassandra, Gremlin e APIs de tabelas.
  • Serviço totalmente gerenciado: Lida com dimensionamento, aplicação de patches e infraestrutura, reduzindo a sobrecarga operacional.

Desvantagens

  • Recursos limitados de SQL: Não possui recursos completos de JOIN e GROUP BY encontrados em bancos de dados relacionais.
  • Custo em escala: Pode se tornar caro em cargas de trabalho de alto rendimento se não for otimizado.

Conclusão

O Azure Cosmos DB é um banco de dados NoSQL robusto e distribuído globalmente, criado para aplicativos modernos e nativos da nuvem. Com seu suporte a vários modelos, replicação ativa-ativa e níveis de consistência ajustáveis, ele se destaca em cenários que exigem alta disponibilidade, capacidade de resposta em tempo real e escalabilidade elástica, como sistemas orientados por IA, plataformas de comércio eletrônico e soluções de IoT.

Sua infraestrutura totalmente gerenciada, a modelagem de dados flexível e o rico ecossistema de APIs fazem dele uma excelente opção para desenvolvedores e arquitetos. Dito isso, as equipes devem considerar cuidadosamente as possíveis limitações, como as lacunas de recursos do SQL e o custo em escala, ao planejar as cargas de trabalho de produção.

Se você quiser continuar aprimorando suas habilidades, aqui estão alguns outros bons recursos: 


Josep Ferrer's photo
Author
Josep Ferrer
LinkedIn
Twitter

Josep é cientista de dados e gerente de projetos no Conselho de Turismo da Catalunha, usando dados para melhorar a experiência dos turistas na Catalunha. Sua experiência inclui o gerenciamento de armazenamento e processamento de dados, juntamente com análises avançadas e a comunicação eficaz de insights de dados.

Ele também é um educador dedicado, lecionando no programa de mestrado em Big Data da Universidade de Navarra e contribuindo regularmente com artigos perspicazes sobre ciência de dados para o Medium e o KDNuggets.

Ele é bacharel em Engenharia Física pela Universidade Politécnica da Catalunha e mestre em Sistemas Interativos Inteligentes pela Universidade Pompeu Fabra.

Atualmente, ele está empenhado em tornar as tecnologias relacionadas a dados mais acessíveis a um público mais amplo por meio da publicação ForCode'Sake no Medium.

Perguntas frequentes

O que é o Azure Cosmos DB?

O Azure Cosmos DB é um serviço de banco de dados NoSQL totalmente gerenciado e distribuído globalmente pela Microsoft que oferece suporte a vários modelos de dados e é otimizado para aplicativos de baixa latência e alta disponibilidade.

Por que os desenvolvedores devem usar o Cosmos DB?

Os desenvolvedores escolhem o Cosmos DB por sua replicação em várias regiões, escalabilidade elástica, cinco modelos de consistência ajustáveis e suporte a várias APIs e modelos de dados, o que o torna ideal para aplicativos modernos e nativos da nuvem.

Quais são os casos de uso comuns do Cosmos DB?

O Cosmos DB é usado em IA e machine learning (por exemplo, pesquisa vetorial), comércio eletrônico e varejo (personalização em tempo real), jogos e mídias sociais (interações de baixa latência) e IoT (telemetria e análise em tempo real).

Como o Cosmos DB lida com a escalabilidade e o desempenho?

O Cosmos DB usa contêineres particionados, taxa de transferência ajustável por meio de unidades de solicitação (RUs) e distribuição inteligente de dados para dimensionar horizontalmente e oferecer suporte a consultas de alto desempenho.

Quais são as principais desvantagens do Cosmos DB?

Embora seja poderoso, o Cosmos DB pode ser caro sob alta taxa de transferência se não for otimizado, e ele não tem suporte completo a SQL para consultas complexas, como junções de várias tabelas ou operações avançadas em GROUP BY.

O que acontece com meus dados no Azure Cosmos DB durante uma falha regional?

No caso de uma falha regional, o objetivo de ponto de recuperação (RPO) do Azure Cosmos DB- ou a quantidade de dados que podem ser perdidos - é determinado pelo modelo de consistência e pela configuração de implantação que você tem:

  • A consistência forte garante que você não tenha perda de dados (RPO = 0).

  • Outros modelos de consistência (como sessão, estanqueidade limitada ou eventual) podem permitir um atraso mínimo nos dados ou lacunas nas versões.

Essa variedade de opções permite que você adapte o comportamento do Cosmos DB com base nas necessidades do seu aplicativo, quer você valorize a precisão, a velocidade ou um equilíbrio de ambos.

Como devo modelar dados hierárquicos no Azure Cosmos DB?

Para modelar dados hierárquicos, como estruturas de pastas ou árvores de categorias, o Cosmos DB recomenda que você achate a estrutura do documento. Use campos como parentId para representar relacionamentos em vez de documentos aninhados ou uniões complexas.

Esse design melhora a eficiência e o dimensionamento da consulta, facilitando o gerenciamento e a recuperação de dados relacionados em ambientes distribuídos.

Qual modelo de consistência devo usar em uma configuração do Cosmos DB com várias regiões?

O Azure Cosmos DB oferece suporte a todos os cinco modelos de consistência em implantações multirregionais, dando a você flexibilidade para equilibrar o desempenho e a precisão dos dados.

  • A consistência da sessão geralmente é ideal, pois oferece garantias de leitura e gravação, baixa latência e sobrecarga mínima.

  • Para obter garantias mais rigorosas ou mais relaxadas, você pode escolher a estanqueidade forte e limitada, o prefixo consistente ou a consistência eventual.

Essa versatilidade facilita a adequação do Cosmos DB às necessidades exclusivas de seus aplicativos distribuídos globalmente.

Tópicos

Aprenda com a DataCamp

Curso

Understanding Microsoft Azure

3 h
34.3K
Learn about the power of Microsoft Azure and cloud computing software to help you improve your data engineering skills.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Bancos de dados NoSQL: O que todo cientista de dados precisa saber

Descubra para que servem os bancos de dados NoSQL, por que os cientistas de dados os utilizam e uma lista dos melhores bancos de dados NoSQL disponíveis.
Zoumana Keita 's photo

Zoumana Keita

12 min

blog

Contratos de dados desmistificados: Tudo o que você precisa saber

Obtendo escalabilidade em sistemas de dados distribuídos e reduzindo erros.
Mike Shakhomirov's photo

Mike Shakhomirov

11 min

blog

O que é o Microsoft Fabric?

Descubra como o Microsoft Fabric revoluciona a análise de dados e saiba como seus principais recursos capacitam as empresas a tomar decisões orientadas por dados.
Kurtis Pykes 's photo

Kurtis Pykes

10 min

blog

Os 5 principais bancos de dados vetoriais

Um guia abrangente para os melhores bancos de dados de vetores. Domine o armazenamento de dados de alta dimensão, decifre informações não estruturadas e aproveite a incorporação de vetores para aplicativos de IA.
Moez Ali's photo

Moez Ali

14 min

Tutorial

Primeiros passos com o AWS Athena: Um guia prático para iniciantes

Este guia prático ajudará você a começar a usar o AWS Athena. Explore sua arquitetura e seus recursos e saiba como consultar dados no Amazon S3 usando SQL.
Tim Lu's photo

Tim Lu

15 min

Tutorial

Um guia completo para armazenamento de dados no AWS com o Redshift

Este guia do AWS Redshift abrange a configuração e o gerenciamento de um data warehouse na nuvem, o carregamento de dados, a execução de consultas complexas, a otimização do desempenho, a integração com ferramentas de BI e fornece práticas recomendadas e dicas de solução de problemas para que você tenha sucesso.
Zoumana Keita 's photo

Zoumana Keita

15 min

Ver maisVer mais