AWS SAA-C03/06 - Bancos de Dados2 min
DynamoDB
Responda com suas palavras antes de ler o resto da nota.
- Que problema isso resolve?
- Quando usar / quando NÃO usar?
- Qual o principal trade-off (custo, latência, operação)?
- Que sinal no enunciado aponta pra isso?
- Com o que isso é confundido na prova?
Conceito
NoSQL chave-valor e documento, totalmente gerenciado, serverless, com latência de milissegundo de um dígito em qualquer escala. Não tem servidor, versão nem patch.
Modelo de dados
- Tabela → itens (linhas) → atributos (colunas), sem schema fixo
- Partition key (obrigatória) define em qual partição o item mora
- Sort key (opcional) ordena itens dentro da partição
- Item máximo: 400 KB
Uma partition key bem distribuída é o que garante performance. Chave concentrada cria hot partition e estrangula a tabela mesmo com capacidade sobrando.
Consistência de leitura
| Modo | Custo | Garantia |
|---|---|---|
| Eventualmente consistente (padrão) | 0,5 RCU | Pode devolver dado ligeiramente antigo |
| Fortemente consistente | 1 RCU | Sempre a versão mais recente |
| Transacional (ACID) | 2x | All-or-nothing entre itens/tabelas |
Recursos que a prova cobra
| Recurso | Para que serve |
|---|---|
| DAX | Cache in-memory nativo, leitura em microssegundos — só pra DynamoDB |
| Streams | Captura mudanças (24 h) → dispara Lambda. Base de arquitetura event-driven |
| Global Tables | Multi-região ativo-ativo. Exige Streams habilitado |
| TTL | Expira item automaticamente, sem consumir WCU |
| PITR | Restaura em qualquer segundo dos últimos 35 dias |
| On-demand backup | Snapshot sob demanda, retenção indefinida |
Trade-offs
DynamoDB entrega escala e latência previsíveis desde que você modele em cima dos padrões de acesso — não em cima das entidades. Ele não faz JOIN, não faz query ad-hoc eficiente por atributo não indexado, e scan é caro e lento. Se o requisito é consulta relacional flexível, a resposta é RDS/Aurora.
DAX resolve leitura repetida com microssegundos, mas é mais um cluster pra pagar e só faz sentido com alta taxa de leitura repetida.
Sinais de prova
- "Chave-valor, escala massiva, latência de milissegundo de um dígito" → DynamoDB
- "Latência de microssegundo na leitura" → DAX
- "Reagir a cada alteração de item" → Streams + Lambda
- "Multi-região ativo-ativo" → Global Tables
- "Apagar sessões expiradas automaticamente" → TTL
- "Carrinho de compras / sessão / catálogo de produto" → DynamoDB
- "Consulta analítica complexa com JOIN" → não é DynamoDB
- "Performance ruim mesmo com capacidade sobrando" → hot partition
Relacionado
Parte de 06 - MOC Bancos de Dados · Documentação AWS