O que é o Amazon DynamoDB?
O Amazon DynamoDB é um banco de dados NoSQL totalmente gerenciado que oferece performance rápida e previsível com escalabilidade automática. Ele suporta modelos de dados de documentos e chave-valor, proporcionando latência de milissegundos de um dígito em qualquer escala.
Conceitos-Chave
Tabelas
Coleção de dados no DynamoDB. Cada tabela contém múltiplos itens (registros).
Itens
Equivalente a uma linha ou registro em bancos relacionais. Cada item é composto por atributos.
Atributos
Elementos de dados fundamentais, similares a campos ou colunas. Cada item pode ter atributos diferentes (schema flexível).
Chaves Primárias
- Partition Key (Chave de Partição): Atributo único que determina onde os dados são armazenados
- Composite Key: Partition Key + Sort Key (chave de ordenação) para consultas mais complexas
Índices
- Global Secondary Index (GSI): Índice com partition key e sort key diferentes da tabela
- Local Secondary Index (LSI): Mesma partition key da tabela, mas sort key diferente
Performance e Escalabilidade
Modos de Capacidade
- On-Demand: Pague por requisição, escala automaticamente sem planejamento
- Provisioned: Especifique RCU (Read Capacity Units) e WCU (Write Capacity Units)
Características de Performance
- Latência de milissegundos de um dígito
- Escalabilidade automática e ilimitada
- Replicação automática em múltiplas AZs
- Backup e restauração point-in-time
DynamoDB Accelerator (DAX)
Cache em memória totalmente gerenciado que reduz latência de milissegundos para microssegundos.
Casos de Uso
- Aplicações web e mobile de alta escala
- Sessões de usuário e perfis
- Catálogos de produtos e inventário
- Gaming leaderboards e pontuações
- IoT e dados de sensores
- Carrinhos de compras em e-commerce
DynamoDB vs RDS
Use DynamoDB quando:
- Precisa de escalabilidade massiva e automática
- Workloads com padrões de acesso previsíveis por chave
- Necessita de latência consistente em milissegundos
- Schema flexível (dados não estruturados)
- Aplicações serverless (integração com Lambda)
Use RDS quando:
- Precisa de consultas SQL complexas e JOINs
- Dados altamente relacionais
- Necessita de transações ACID completas
- Schema rígido e bem definido
- Aplicações legadas que usam SQL
💡 Pontos Importantes para a Certificação
- DynamoDB é totalmente gerenciado - AWS cuida de hardware, setup, replicação e patches
- Dados são automaticamente replicados em 3 Availability Zones
- Suporta eventual consistency (padrão) e strong consistency (opcional)
- Não há limite de armazenamento - escala automaticamente
- Integração nativa com Lambda, S3, CloudWatch e outros serviços AWS
- DynamoDB Streams captura mudanças em tempo real para processamento
- Global Tables permite replicação multi-região para aplicações globais
🎯 Dicas de Estudo
- Entenda a diferença entre partition key e composite key
- Saiba quando usar On-Demand vs Provisioned capacity
- DynamoDB é NoSQL - não suporta JOINs ou consultas SQL complexas
- DAX é usado para melhorar performance de leitura (cache)
- Lembre-se: DynamoDB é serverless e totalmente gerenciado
- Para certificação, compare DynamoDB (NoSQL) com RDS (SQL)
- Global Tables = multi-região, DynamoDB Streams = captura de mudanças
