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 Query em 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

Última verificação em 2026-07-13 contra a documentação oficial da AWS vinculada acima.

Trabalhe com o DynamoDB sem o Console

O DynoTable é um cliente desktop rápido para o DynamoDB — navegue pelas tabelas, execute consultas no estilo SQL e edite itens localmente.