Domanda

Ha qualcuno di voi ha avuto alcuna esperienza con l'utilizzo di NoSQL database (non relazionali) per memorizzare i dati spaziali? Ci sono dei potenziali benefici (velocità, spazio, ...) di utilizzare tali database per contenere i dati per, diciamo, un'applicazione desktop (rispetto all'utilizzo SpatiaLite o PostGIS)?

Ho visto messaggi su come utilizzare MongoDB per spaziale dati , ma io sono interessato in qualche confronto delle prestazioni.

È stato utile?

Soluzione

Grafici database come Neo4j sono una misura molto buona, tanto più che è possibile aggiungere diversi schemi di indicizzazione in modo dinamico, come si va . roba tipica che si può fare sul vostro dei dati di base è ovviamente 1D indicizzazione (ad es Timline o B-alberi) o roba del genere funky di Hilbert Curve ecc, vedi Nick blog . Inoltre, per qualche dimostrazione dal vivo, guardare l'open source strumento GIS desktop di AWE qui , il grafico sottostante indicizzato essere visibile intorno a tempo 07:00.

Altri suggerimenti

couchdb ha anche un'estensione spaziale semplice

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

Al momento, MongoDB utilizza geohashing con i B-alberi che saranno più lento di R alberi di PostGIS (Non posso dare numeri esatti, ho paura, ma c'è un sacco di letteratura teorica sulle differenze). Tuttavia, in queste slide, http://www.slideshare.net / nknize / R-tree-spaziale-indexing-con-mongodb-mongodc l'autore tratta aggiungendo R-alberi a MongoDB e sharding su una chiave geo. Lei parla di uso desktop, in modo da geosharding potrebbe non essere di vostro interesse, in quanto i benefici di sharding si farà sentire più insiemi di dati enormi. In definitiva, si tratta probabilmente giù più a ciò che si vuole fare con i vostri dati spaziali. PostGIS ha molte più funzioni e il supporto per la topologia, raster, 3D, le conversioni tra i sistemi di coordinate, quindi se questo è quello che stai cercando, PostGIS sarebbe ancora l'opzione migliore. Se siete interessati a memorizzare miliardi / bilioni di oggetti spaziali e solo in esecuzione di base trovare tutti i punti vicino / all'interno di questo punto sulla base di alcuni criteri, quindi MongoDB è probabile una scelta molto buona.

Ho la memorizzazione di dati spaziali con ZODB. C'è qualche vantaggio prestazioni inerente l'accesso ai dati locali di file (SpatiaLite) o socket UNIX (PostGIS) rispetto alle richieste TCP o HTTP (CouchDB, ecc), sicuramente, ma che hanno un indice spaziale fa la differenza più grande. Sto usando lo stesso R-alberi di cui l'articolo MongoDB, ma ci sono un sacco di buone opzioni. La suite topologia JTS ha vari indici spaziali per Java.

Cassandra è anche un'opzione per i dati spaziali:

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

Tarantool supporta spaziale indice bidimensionale (R-tree) con la ricerca vicino più prossimo, si sovrappone, contiene, e gli altri operatori spaziali. Tarantool mantiene l'intero set di dati in RAM, che rende l'unico OSS database in memoria con supporto indice spaziale. https://github.com/tarantool/tarantool / wiki / R-tree-index-quick-start-e-utilizzo

Mark Logic (Enterprise NoSQL) fornisce funzionalità spaziale. Questo prodotto fornisce NoSQL applicazioni GIS la capacità di fondere più oggetti in un'unica entità. Questo fornisce il supporto per la gestione delle relazioni attraverso informazioni sul contenuto, la provenienza e l'albero genealogico strutturati e non strutturati circa i dati, le informazioni storico e temporale, ecc in un unico soggetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top