Microsoft AZ-204: Azure Cosmos DB — Guia de estudos

Faz parte do Microsoft Azure Developer Associate AZ-204 — Guia de estudos. Pratique com respostas verificadas no centro de exames da Microsoft, ou faça testes cronometrados no ExamRoll.io.

Visão Geral

O Azure Cosmos DB é um banco de dados multimodelo, totalmente gerenciado e distribuído globalmente, projetado para aplicações de baixa latência e elasticamente escaláveis. Ele expõe múltiplas APIs sobre um mecanismo comum de armazenamento e replicação particionado, fornece cinco níveis de consistência ajustáveis e oferece SLAs abrangentes para disponibilidade, latência, throughput e consistência. Os dados são organizados em contas, bancos de dados e contêineres (ou coleções/tabelas/grafos, dependendo da API). Os contêineres são particionados horizontalmente e escalados por uma chave de partição, e todas as operações são medidas em Request Units (RUs), uma moeda normalizada que abstrai CPU, IOPS e memória.

APIs e Programabilidade

O Cosmos DB suporta várias APIs compatíveis com o protocolo de rede (wire-compatible) para que você possa usar SDKs e drivers nativos sem reescrever seu modelo de dados:

Operações comuns de SDK entre as APIs incluem CRUD, concorrência otimista com ETags, upserts, scripts do lado do servidor (stored procedures, triggers) e UDFs (API SQL). As consultas são parametrizadas para reduzir RUs e melhorar a segurança. Operações em massa (bulk) e APIs de streaming minimizam a sobrecarga do cliente e os custos de RU para ingestão de alto throughput.

Consistência, Indexação e Semântica de Consulta

O Cosmos DB oferece cinco níveis de consistência bem definidos por conta (que podem ser sobrescritos por requisição em muitos SDKs):

A indexação é automática e consistente por padrão para a API SQL. Cada item e propriedade são indexados sem gerenciamento de esquema, então as escritas atualizam o índice imediatamente (modo de indexação Consistent). Você pode refinar a política de indexação para:

Esteja atento ao tamanho do item e à forma da consulta. A API SQL impõe um limite de tamanho de item (por exemplo, 2 MB), e consultas entre partições (cross-partition), projeções grandes e predicados complexos aumentam o consumo de RUs. Use projeções seletivas, filtros apropriados e consultas cientes da partição (partition-aware) para minimizar o custo de RUs.

Particionamento e Throughput (RUs)

O Cosmos DB separa partições lógicas e físicas:

Escolha uma chave de partição eficaz com alta cardinalidade e distribuição de acesso uniforme ao longo do tempo. Boas chaves se correlacionam com seu caminho de acesso principal (por exemplo, userId, deviceId, tenantId ou orderId). Evite chaves de baixa cardinalidade ou agrupadas por tempo que causam distorção (skew) (por exemplo, country, status ou day). Quando nenhuma propriedade única é adequada:

Modelos de throughput:

Técnicas de otimização de RUs incluem leituras de ponto (point reads) por id+chave de partição, consultas parametrizadas, projeções seletivas, desnormalização para reduzir padrões semelhantes a JOINs e uso do change feed para visualizações derivadas em vez de consultas complexas entre múltiplos contêineres. Use ETags com If-Match para controle de concorrência para evitar novas tentativas (retries) que consomem muitas RUs. Monitore as métricas de RU e o throttling (HTTP 429) e implemente políticas de nova tentativa (retry) com jitter nos SDKs.

Distribuição Global e Feed de Alterações

A distribuição multirregional pronta para uso (turnkey) do Cosmos DB permite adicionar ou remover regiões a qualquer momento. Todas as regiões são legíveis; habilitar gravações multirregionais permite gravações simultâneas em todos os lugares com latência de leitura abaixo de 10 ms no percentil 99 em regiões próximas. Os SDKs do cliente devem ser configurados com regiões preferenciais para rotear o tráfego localmente e realizar failover de forma suave. No .NET, forneça as regiões preferenciais via CosmosClientOptions ApplicationPreferredRegions (ou o equivalente em outros SDKs). Gravações multirregionais exigem uma política de resolução de conflitos:

O feed de alterações (change feed) fornece um log de alterações ordenado e somente de acréscimo (append-only) por chave de partição lógica. É ideal para:

Cenário de Problema Prático

O Spotify precisa fornecer um serviço de personalização globalmente disponível que ingere interações de usuários em tempo real, atualiza recomendações por usuário e serve leituras de baixa latência a partir da região mais próxima. Gravações podem ocorrer a partir de clientes móveis em todo o mundo, e as atualizações de recomendação devem ser distribuídas (fan out) para sistemas downstream.

  1. Escolher a API SQL (Core) do Cosmos DB com gravações multirregionais
  1. Definir uma chave de partição de alta cardinalidade e chaves hierárquicas
  1. Configurar o throughput de autoescalonamento nos contêineres principais
  1. Definir a consistência como Session no nível da conta
  1. Implementar o processamento do feed de alterações com o Azure Functions e o Change Feed Processor
  1. Criar um contêiner de recomendações derivado com uma política de indexação personalizada
  1. Habilitar a distribuição global com regiões preferenciais nos SDKs
  1. Configurar a resolução de conflitos e a observabilidade

Essa arquitetura oferece leituras e gravações de baixa latência globalmente, processamento de eventos resiliente por meio do feed de alterações, autoescalonamento com custo-benefício e semântica de consistência robusta, adequada para cargas de trabalho de personalização.


Azure Storage e Blob Storage · Todos os domínios · Soluções de Contêineres do Azure

Pratique estas questões → · Prática cronometrada no ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Passe no seu exame →

Navegar Microsoft →

Related guides

Acesso completo

Uma assinatura. Todos os exames.

Todo plano desbloqueia pesquisa ilimitada de respostas, testes práticos, explicações de AI e a biblioteca completa de recursos — em mais de 20 idiomas.

Mensal
24.87
Just €0.83/day
Tudo incluído:
  • Pesquisa ilimitada de respostas
  • Testes práticos ilimitados
  • Explicações com AI
  • Biblioteca completa de recursos
  • Mais de 20 idiomas
  • Atualizações semanais de conteúdo
  • Recompensas e indicações
  • Suporte prioritário
Iniciar teste grátis

*Não é necessário cartão de crédito

Melhor custo-benefício
12 meses
179.87
Just €0.49/daySave 40%
Tudo incluído:
  • Pesquisa ilimitada de respostas
  • Testes práticos ilimitados
  • Explicações com AI
  • Biblioteca completa de recursos
  • Mais de 20 idiomas
  • Atualizações semanais de conteúdo
  • Recompensas e indicações
  • Suporte prioritário
Iniciar teste grátis

*Não é necessário cartão de crédito

✓ Plano gratuito incluído · ✓ Cancele a qualquer momento · ✓ Todos os planos desbloqueiam o produto completo