trilha

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

Buscar

Busca por título, seção e texto das notas