O DynamoDB suporta consultas geoespaciais?
Não nativamente. O DynamoDB não tem tipo de dado geoespacial nem operadores de distância ou de bounding box. Em vez disso, consultas geoespaciais são um padrão de modelagem: armazene um geohash ou ID de célula S2 na chave para que pontos próximos ordenem juntos, consulte as células que cobrem sua área de busca e então refine por distância exata na sua aplicação.
O padrão de geohash
Um geohash (ou um ID de célula S2, como usado na Geo Library da AWS para DynamoDB) codifica latitude/longitude em uma string ou número cujo prefixo identifica uma célula da grade — e, crucialmente, pontos próximos compartilham prefixos. Armazenado como partition key ou sort key, isso transforma "pontos perto de mim" em consultas comuns de intervalo de chave:
- Consulta em caixa — calcule as células que cobrem um retângulo, faça
Queryem cada célula, mescle os resultados. - Consulta por raio — o mesmo, sobre as células que cobrem um círculo, e depois filtre por distância exata no lado do cliente.
A resolução importa: escolha um tamanho de célula em que a maioria das buscas toque apenas a célula-alvo e suas vizinhas.
Bibliotecas e ferramentas
A AWS publicou a Geo Library para Amazon DynamoDB (Java) demonstrando o padrão baseado em S2, e existem ports da comunidade para outras linguagens (como o dynamodb-geo para Node.js). Verifique o status de manutenção antes de adotar um — o padrão em si é simples o suficiente para implementar diretamente.
Quando usar um motor de busca em vez disso
Para predicados geo ricos (polígonos, ordenação por distância, combinar geo com texto completo), replique a tabela em um índice especializado — a mesma integração zero-ETL com o OpenSearch que lida com busca de texto completo também te dá um motor de busca com consultas geoespaciais nativas. DynamoDB vs Elasticsearch pondera essa divisão de banco-de-dados-mais-índice por completo.
Saiba mais
O padrão é, no fundo, um truque de sort key — o guia de estratégias de sort key cobre a caixa de ferramentas, o expression builder gera as condições begins_with/BETWEEN que as consultas de célula usam, e o DynoTable te permite inspecionar as chaves codificadas nos seus itens reais.
Referências
- Geo Library for Amazon DynamoDB – Part 1: Table Structure — AWS Mobile Blog
- Implementing geohashing at scale in serverless web applications — AWS Compute Blog
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
Última verificação em 2026-07-13 contra a documentação oficial da AWS vinculada acima.