O DynamoDB é um banco de dados NoSQL?
Sim. DynamoDB é um banco de dados NoSQL – um armazenamento de documentos e valores-chave não relacional e totalmente gerenciado. Ele mantém itens sem esquema em vez de linhas em tabelas de esquema fixo e negocia junções SQL e consultas ad-hoc para desempenho previsível de milissegundos de um dígito e escala horizontal para praticamente qualquer tamanho.
Que tipo de NoSQL
O DynamoDB oferece suporte aos modelos de valor-chave e de dados de documento. Cada item é endereçado por uma chave primária e os atributos podem ser aninhados como mapas e listas com até 32 níveis de profundidade — o lado do documento do modelo.
Como ele difere do SQL
- Sem esquema fixo — apenas a chave primária é definida antecipadamente; outros atributos variam por item.
- Sem junções — em vez disso, você desnormaliza e modela em torno de padrões de acesso.
- Desempenho previsível — as leituras têm como alvo uma chave de partição, para que a latência permaneça estável à medida que os dados aumentam.
O que o mecanismo faz com um JOIN
O PartiQL faz com que o DynamoDB pareça o formato do SQL, então é fácil perder o limite. A sintaxe SELECT documentada do AWS é toda a gramática e não possui cláusula JOIN:
SELECT {{expression}} [, ...]
FROM {{table}}[.{{index}}]
[ WHERE {{condition}} ] [ [ORDER BY {{key}} [DESC|ASC] , ...]Envie um mesmo assim e o analisador para na segunda tabela:
await client.send(
new ExecuteStatementCommand({
Statement: `SELECT o.pk FROM "orders" o JOIN "customers" c ON o.pk = c.pk`
})
);Saída real:
ValidationException: Only select from a single table or index is supported.
HTTP 400A recusa ocorre no momento da análise, antes de qualquer dado ser lido, e é por isso que nenhuma quantidade de design de índice proporciona uma junção. A adesão é o trabalho do seu aplicativo em uma loja NoSQL.
Também limita o que qualquer cliente pode oferecer honestamente. O SQL Workbench do DynoTable aceita INNER JOIN, LEFT JOIN, GROUP BY e COUNT/SUM/AVG/MIN/MAX.
Ele os compila em chamadas nativas Query e Scan e, em seguida, junta e agrega os resultados em sua máquina. O DynamoDB ainda vê apenas leituras de tabela única.
Quando cabe
O DynamoDB foi desenvolvido para cargas de trabalho OLTP: leituras e escritas de alto volume e de ponto e intervalo conhecidos. A análise pesada pertence a um armazenamento colunar separado alimentado pela exportação.
NoSQL limita você ainda sente na produção
"NoSQL" descreve o modelo de acesso, não uma remoção de restrições. O DynamoDB ainda limita 400 KB por item, 25 ações por TransactWriteItems e 100 ações de leitura ou gravação por transação. Um documento aninhado pode ter 32 níveis de profundidade. O projeto GSIs apenas atribui seu nome; não há esquema oculto ao qual recorrer.
Esses limites são importantes porque você não pode sair deles no momento da consulta. Você modela em torno deles antecipadamente – índices esparsos, atributos desnormalizados e chaves de tabela única – e depois lê por partição. O Query Builder transforma um filtro na solicitação Query ou Scan que o DynamoDB irá realmente executar.
No DynoTable: quando uma questão relacional é legítima, o SQL Workbench compila JOIN e GROUP BY até chamadas nativas de Query e Scan em sua máquina — o DynamoDB ainda vê leituras de tabela única. Consulte SQL Workbench para obter a gramática suportada e os limites honestos.
Aprofunde-se
Veja quando usar DynamoDB e como moldar dados com como modelar dados em DynamoDB. Baixe DynoTable para navegar em suas tabelas NoSQL e executar o SQL sobre elas dentro das regras de padrão de acesso do DynamoDB.
Referências
- O que é Amazon DynamoDB? — Guia do desenvolvedor Amazon DynamoDB
- Componentes principais do Amazon DynamoDB — Guia do desenvolvedor do Amazon DynamoDB
- Instruções de seleção do PartiQL para DynamoDB — Guia do desenvolvedor do Amazon DynamoDB
- Banco de dados de valores-chave NoSQL rápido - Amazon DynamoDB - AWS
Última verificação em 13/07/2026 em relação à documentação oficial do AWS vinculada acima; a gramática PartiQL SELECT foi verificada novamente em 28/07/2026.
Reproduzido em 28/07/2026 em DynamoDB Local 3.3.0 via @aws-sdk/client-dynamodb 3.1095.0 no Node v24.18.0. O ValidationException acima é a saída literal do motor.