Pregunta

¿Alguno de ustedes han tenido alguna experiencia con el uso de bases de datos NoSQL (no relacionales) para almacenar datos espaciales? ¿Hay beneficios potenciales (velocidad, espacio, ...) de la utilización de dichas bases de datos para almacenar los datos para, por ejemplo, una aplicación de escritorio (en comparación con el uso de SpatiaLite o PostGIS)?

sobre el uso de MongoDB espacial de datos, pero estoy interesado en algunos comparación de rendimiento.

¿Fue útil?

Solución

Neo4j son una muy buena opción, especialmente en lo que se puede añadir diferentes esquemas de indexación de forma dinámica a medida que avanza . típico cosas que puede hacer en su base de datos es, por supuesto, la indexación 1D (por ejemplo Timline o B-Trees) o cosas más originales como Hilbert curvas, etc, consulte Blog de Nick . También, por alguna demostración en vivo, mirar a la herramienta SIG de escritorio de código abierto AWE aquí , siendo la gráfica indexada subyacente visibles alrededor de la hora 07:00.

Otros consejos

couchdb también tiene una extensión espacial sencilla

http://vmx.cx/cgi-bin/blog/ index.cgi / categoría / CouchDB

Actualmente, MongoDB utiliza geohashing con árboles B que será más lento que el R-árboles de PostGIS (No puedo dar números exactos, me temo, pero hay un montón de literatura teórica sobre las diferencias). Sin embargo, en estas diapositivas, http://www.slideshare.net / nknize / rtree-espacial-indexación-con-mongodb-mongodc el autor habla de la adición de R-árboles a MongoDB y sharding en una clave geo. Se habla de uso de escritorio, por lo geosharding no puede ser de interés, como los beneficios de sharding se sentirán más en grandes conjuntos de datos. En última instancia, es probable que se reduce más de lo que quiere hacer con sus datos espaciales. Postgis tiene mucho más funciones y soporte para la topología, raster, 3D, las conversiones entre sistemas de coordenadas, por lo que si esto es lo que busca, PostGIS seguiría siendo la mejor opción. Si usted está interesado en el almacenamiento de mil millones / billones de objetos espaciales y sólo corriendo básica encuentran todos los puntos cercanos / dentro de este punto en base a unos criterios, entonces es probable MongoDB una muy buena elección.

He estado almacenando datos espaciales con ZODB. Hay un poco de ventaja en el rendimiento inherente a acceder a los datos locales de archivo (SpatiaLite) o socket Unix (PostGIS) en comparación con las solicitudes TCP o HTTP (CouchDB etc), con seguridad, pero que tengan un índice espacial hace la mayor diferencia. Estoy usando los mismos R árboles mencionados en el artículo de MongoDB, pero hay un montón de buenas opciones. La suite topología JTS tiene varios índices espaciales para Java.

Cassandra es también una opción para los datos espaciales:

http://www.readwriteweb.com/cloud/ 2011/02 / vídeo-SimpleGeo-cassandra.php

Tarantool apoya índice de dos dimensiones espaciales (RTREE) con la búsqueda del vecino más cercano, se superpone, contiene, y otros operadores espaciales. Tarantool mantiene todo el conjunto de datos en la memoria RAM, por lo que es la única base de datos de OSS en memoria con el apoyo índice espacial. https://github.com/tarantool/tarantool / wiki / árbol R-index-quick-start-and-uso

MarkLogic (Enterprise NoSQL) proporciona funcionalidad espacial. Este producto proporciona NoSQL aplicaciones SIG la capacidad de combinar varios objetos en una sola entidad. Esto proporciona un soporte para la gestión de relaciones a través de la información de contenido, procedencia y pedigrí estructurada y no estructurada acerca de los datos, información histórica y la línea de tiempo, etc., en una sola entidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top