Question

A l'un de vous eu une expérience avec l'utilisation des bases de données NoSQL (non relationnelles) pour stocker des données spatiales? Y a-t-il des avantages potentiels (vitesse, l'espace, ...) de l'utilisation de ces bases de données pour stocker des données pour, par exemple, une application de bureau (par rapport à l'utilisation SpatiaLite ou PostGIS)?

Je l'ai vu messages sur l'utilisation de MongoDB pour l'espace données , mais je suis intéressé par une comparaison des performances.

Était-ce utile?

La solution

Neo4j sont une très bonne forme, d'autant plus que vous pouvez ajouter différents schémas d'indexation dynamique à mesure que vous allez . Des vêtements typiques que vous pouvez faire sur vos données de base est bien sûr l'indexation 1D (par exemple timline ou B-arbres) ou des trucs comme funkier courbes Hilbert etc, voir blog de Nick. En outre, pour une démonstration en direct, regarder la AWE open source outil de bureau SIG , le graphique indexé sous-jacent étant visible autour de 07:00.

Autres conseils

CouchDB a aussi une simple extension spatiale

http://vmx.cx/cgi-bin/blog/ index.cgi / catégorie / CouchDB

À l'heure actuelle, MongoDB utilise geohashing avec B-arbres qui seront plus lents que les R-arbres de PostGIS (je ne peux pas donner des chiffres exacts, j'ai peur, mais il y a beaucoup de littérature théorique sur les différences). Cependant, dans ces diapositives, http://www.slideshare.net / nknize / rtree-indexation avec-spatiale mongodb-mongodc les pourparlers de l'auteur sur l'ajout de R arbres à MongoDB et sharding sur une clé géo. Vous parlez de l'utilisation de bureau, donc geosharding peut-être pas d'intérêt, comme les prestations de sharding se feront sentir davantage sur des ensembles de données massifs. En fin de compte, il est probablement plus bas à ce que vous voulez faire avec vos données spatiales. PostGIS a des fonctions beaucoup plus et soutien à la topologie, rasters, 3D, conversions entre systèmes de coordonnées, donc si c'est ce que vous cherchez, PostGIS serait toujours la meilleure option. Si vous êtes intéressé à stocker des milliards / d'objets spatiaux billions et trouvent juste en cours d'exécution de base tous les points près de / à l'intérieur de ce point en fonction de certains critères, MongoDB est probablement un très bon choix.

I ai stocker des données spatiales avec ZODB. Il y a un avantage de performance inhérente à l'accès aux données de fichiers locaux (spatialité) ou prise unix (PostGIS) par rapport aux demandes TCP ou HTTP (CouchDB etc), sûrement, mais ayant un indice spatial fait la plus grande différence. J'utilise les mêmes R arbres mentionnés dans l'article MongoDB, mais il y a beaucoup de bonnes options. La suite de la topologie JTS a plusieurs index spatiaux pour Java.

Cassandra est également une option de données spatiales:

http://www.readwriteweb.com/cloud/ 2011/02 / vidéo SimpleGeo-cassandra.php

Tarantool soutient l'index à deux dimensions spatiales (RTREE) avec la recherche du plus proche voisin, chevauche, contient, et d'autres opérateurs spatiaux. Tarantool maintient l'ensemble des données dans la mémoire RAM, ce qui en fait la seule OSS base de données en mémoire avec l'appui de l'index spatial. https://github.com/tarantool/tarantool / wiki / R-tree-index rapide démarrage et l'utilisation

MarkLogic (Enterprise NoSQL) fournit une fonctionnalité spatiale. Ce produit NoSQL fournit des applications de SIG la possibilité d'amalgamer plusieurs objets en une seule entité. Cela prend en charge la gestion des relations à travers le contenu structuré et non structuré, la provenance et l'information pedigree sur les données, informations historiques et chronologie, etc. dans une seule entité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top