Tecnologias/02 - Bancos de Dados/02 - Não Relacionais/02 - DynamoDB2 min
DynamoDB
Definição
Amazon DynamoDB é um banco NoSQL gerenciado com modelos de chave-valor e documento. Seus elementos principais são tabelas, itens e atributos. A chave primária identifica o item; atributos adicionais podem variar entre itens.
A chave pode conter apenas uma partition key ou combinar partition key e sort key. Na chave composta, o par identifica o item de forma única. O valor da partition key participa da distribuição física do armazenamento; não corresponde necessariamente a uma máquina exclusiva. Referência: componentes.
Exemplo de modelo
| PK | SK | Atributos |
|---|---|---|
| CLIENTE#42 | PERFIL | nome, email |
| CLIENTE#42 | PEDIDO#2026-09-01#101 | total, status |
| CLIENTE#42 | PEDIDO#2026-09-12#102 | total, status |
A aplicação localiza um item pela chave completa e pode consultar um conjunto que
compartilha a partition key. Neste exemplo, o prefixo de SK separa pedidos do perfil.
A estrutura nasce das consultas que a aplicação precisa executar.
Capacidade
No modo on-demand, o serviço administra a capacidade e a cobrança acompanha as requisições. No modo provisionado, define-se capacidade de leitura e escrita, com possibilidade de ajuste automático. Nenhum modo torna uma única chave muito concentrada infinitamente escalável. Referência: modos de capacidade.
Limitações
Consultas relacionais arbitrárias e joins não são o centro do modelo. Se a aplicação precisa procurar por outra chave, pode precisar de índice adicional ou outro arranjo dos dados. Duplicar informações para atender consultas implica manter essas cópias coerentes durante atualizações.
Aprofundamento aplicado
Começar pela tabela de acessos
Antes das entidades, escreva as perguntas que precisam de baixa latência:
| Pergunta | Caminho proposto |
|---|---|
| Perfil do cliente 42 | GetItem com chave completa |
| Pedidos recentes do cliente 42 | Query na PK do cliente e intervalo de SK |
| Pedido pelo identificador público | Chave própria ou GSI desenhado para esse acesso |
| Soma de vendas de todos os clientes | Fluxo analítico separado ou acesso especificamente modelado |
Uma single-table design agrupa tipos de item para responder acessos; ela não exige que toda aplicação tenha uma tabela única. O ganho depende das consultas que essa proximidade evita e do custo de manter as representações.
Uma chave concentrada continua sendo um gargalo
Se uma promoção usa sempre PK = PROMOCAO#ATUAL, o tráfego pode se concentrar apesar
de a tabela ter muitos itens. Distribuir contadores ou buckets pode melhorar escrita,
mas exige combinar leituras e repensar atomicidade global.
Referência: desenho de partition keys.
Exercício: modele listar pedidos por cliente e localizar pedido por ID.
Resultado esperado: nenhum acesso frequente depende de Scan; cada cópia ou índice
tem uma regra explícita de atualização e consistência.
Relacionado: 2. Chaves, Query e Índices no DynamoDB · 3. Consistência e Transações no DynamoDB · DynamoDB na base AWS.
Parte de DynamoDB