DynamoDB búsquedas geoespaciales

ASIMOV Ingeniería S. de R.L. de C.V., Geovani Salvador Castañeda Alfonseca

¿Qué es la "Geo Library" de DynamoDB?

DynamoDB nos ofrece la posibilidad de crear y consultar información con datos geográficos, lo anterior abre un mundo de posibilidades para cualquier negocio, permitiéndonos utilizar herramientas de big data para analizar la información que poseemos y determinar, por ejemplo, las mejores zonas para abrir un nuevo local, colocar nuestros productos o incluso ubicar a nuestros mejores clientes para ofrecerles un servicio especializado .

Inicialmente la geo library de DynamoDB fue creada en Java y C++ pero actualmente también se encuentra disponible para Python y Javascript 

Odoo • A picture with a caption
 

¿Cómo se usa la "Geo Library" de DynamoDB?

DynamoDB crea geohash indexes a partir de puntos de interés basados en sistemas coordenados, con la geo library podemos hacer consultas de estos puntos basadas en la ubicación, por ejemplo obteniendo conjuntos específicos de puntos que comparten coordenadas cercanas. Este tipo de estructura nos permite consultar bases de datos masivas en cuestión de milisegundos.

¿Por qué usar la "Geo Library" de DynamoDB?

Utilizar la geo library de DynamoDB es recomendable cuando te interesa una plataforma con las siguientes características:

  • Escala masiva

  • Tecnología Serverless

  • Costo en función del consumo

¿Cómo crear una tabla con información geoespacial en  DynamoDB?

Para utilizar correctamente la geo library de DynamoDB es necesario hacer uso de Geohash , puede parecer algo complicado pero a muy grandes rasgos se puede definir coomo un id para identificar un  cuadrado ubicado en una malla generada al subdividir el mundo en pequeños cuadrados, este tipo de solución tiene las siguientes caracteristicas:

  • El id tiene hasta 12 caracteres de longitud, que dependiendo de la longitud determina el tamaño del cuadrado al que hace referencia.

  • El primer caracter que compone el geohash  determina una de 32 celdas en la malla, sobre el planeta, de aproximadamente 5000km x 5000km.

  • EL segundo caracter identifica uno de las 32 celdas dentro de la primera celda, dando como resultado una celda de aproximadamente  1250km x 1250km.

  • Así sucesivamente podemos determinar ubicaciones con un alto nivel de precisión utilizando únicamente un id.

Odoo • A picture with a caption

Dependiendo de las características de nuestros datos es necesario definir la longitud de nuestra Geohash , por ejemplo si nuestra información tiene varios kilómetros de distancia entre cada registro se vuelve innecesario tener una Geohash demasiado larga puesto que no necesitamos consultas de alta precisión, en el caso contrario si nuestros datos se encuentran muy cerca entre ellos, utilizar una Geohash muy corta podria provocar respuestas demasiado amplias y considerablemente más lentas.

Al definir la longitud de nuestra Geohash es necesario preparar nuestra información para cargarla en la base de datos, comumnente a partir de un  GeoJSON  podremos realizar la carga de información. 

Esperamos que esta información te resulte útil para comenzar a utilizar información georreferenciada, te invitamos a visitar nuestro blog ya que seguiremos hablando del manejo de DynamoDB y otros servicios que ofrece AWS, si tienes alguna pregunta o sugerencia no dudes en hacérnosla llegar por medio de nuestras redes sociales.