Frage

Hat jemand von euch keine Erfahrungen mit der Verwendung von NoSQL (non-relational) Datenbanken räumliche Daten zu speichern? Gibt es irgendwelche möglichen Vorteile (Geschwindigkeit, Raum, ...) solcher Datenbanken zu halten Daten für, sagen wir, eine Desktop-Anwendung (im Vergleich zur Verwendung SpatiaLite oder PostGIS)?

Ich habe Beiträge gesehen über die Verwendung von MongoDB für Raum Daten , aber ich bin in einem gewissen Leistungsvergleich interessiert.

War es hilfreich?

Lösung

Graphen Datenbanken wie Neo4j sind eine sehr gute Passform, vor allem, wie Sie dynamisch unterschiedlichen Indices hinzufügen können, wie Sie gehen . Typisches Material, das Sie auf Ihren Basisdaten tun können, ist natürlich 1D Indizierung (zB Timline oder B-Bäume) oder funkier Sachen wie Hilbert-Kurven usw. finden Sie unter Nicks Blog . Auch für einige Live-Demonstration, Blick auf die AWE Open-Source-GIS-Desktop-Tool hier , zugrunde liegen die indizierte Graph Wesen sichtbar um Zeit 07:00 Uhr.

Andere Tipps

CouchDB hat auch eine einfache räumliche Ausdehnung

http://vmx.cx/cgi-bin/blog/ index.cgi / Kategorie / CouchDB

Derzeit MongoDB verwendet geohashing mit B-Bäume, die langsamer sind als die R-Bäume von PostGIS (Ich kann nicht genaue Zahlen geben, ich habe Angst, aber es gibt viele theoretische Literatur über die Unterschiede). Doch auch in diesen Folien, http://www.slideshare.net R-Bäume zu MongoDB und Sharding auf einem geo key / nknize / RTREE-räumlich-Indizierung-with-mongodb-mongodc spricht der Autor über das Hinzufügen. Sie sprechen über den Desktop-Einsatz, so geosharding nicht von Interesse sein können, wie sharding die Vorteile auf massiven Datensätze gefühlt mehr werden. Letztlich kommt es wahrscheinlich um mehr zu dem, was Sie mit Ihren räumlichen Daten tun mögen. Postgis hat wesentlich mehr Funktionen und Unterstützung für die Topologie, Rastern, 3D, Konvertierungen zwischen Koordinatensystemen, so dass, wenn das ist, was Sie suchen, würde PostGIS immer noch die beste Option sein. Wenn Sie interessiert sind Milliarden / Billionen von räumlichen Objekten in die Speicherung und nur grundlegende Entdeckung laufen alle Punkte in der Nähe von / in diesem Punkt auf einige Kriterien, dann MongoDB wahrscheinlich eine sehr gute Wahl ist.

Ich habe die Speicherung räumliche Daten mit ZODB. Es gibt einigen inhärenten Leistungsvorteil beim Zugriff auf lokale Dateidaten (spatialite) oder Unix-Socket (PostGIS) im Vergleich zu TCP oder HTTP-Anfragen (CouchDB usw.), sicher, aber eine räumliche Index macht den größten Unterschied. Ich verwende den gleichen R-Bäume im MongoDB Artikel erwähnt, aber es gibt viele gute Möglichkeiten. Die JTS Topologie Suite verfügt über verschiedenen räumlichen Indizes für Java.

Cassandra ist auch eine Option für räumliche Daten:

http://www.readwriteweb.com/cloud/ 2011/02 / Video-SimpleGeo-cassandra.php

unterstützt Tarantool räumlichen zweidimensionalen Index (RTREE) mit nächsten Nachbarn suchen, überlappt, enthält, und andere räumliche Operatoren. Tarantool hält den gesamten Datensatz in RAM, es ist der einzige OSS In-Memory-Datenbank mit räumlichen Index Unterstützung zu machen. https://github.com/tarantool/tarantool / wiki / R-Baum-Index-quick-Start-und-Nutzung

Marklogic (Enterprise NoSQL) bietet räumliche Funktionalität. Dieses NoSQL Produkt bietet GIS-Anwendungen die Möglichkeit, mehrere Objekte zu einer Einheit zu verschmelzen. Dies bietet Unterstützung für die Beziehungen über strukturierte und unstrukturierte Inhalte, Herkunft und Abstammung Informationen über die Daten, historische und Timeline-Informationen usw. in einer einzigen Einheit zu verwalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top