[英]NoSQL and spatial data
你們有沒有使用NoSQL(非關系型)數據庫存儲空間數據的經驗? 是否有任何潛在的好處(速度,空間......)使用這些數據庫來保存桌面應用程序的數據(與使用SpatiaLite或PostGIS相比)?
我已經看過關於將MongoDB用於空間數據的帖子 ,但我對一些性能比較感興趣。
目前,MongoDB使用B樹進行地理分割,這將比PostGIS的R樹慢(我不能給出確切的數字,我擔心,但是有很多關於這些差異的理論文獻)。 但是,在這些幻燈片中, http: //www.slideshare.net/nknize/rtree-spatial-indexing-with-mongodb-mongodc作者討論了如何在MongoDB中添加R-tree以及在地理密鑰上進行分片。 您談論桌面使用,因此地理分析可能不會引起關注,因為在大量數據集中會更多地感受到分片的好處。 最終,它可能更多地取決於您想要對空間數據做什么。 Postgis具有更多的功能和支持拓撲,柵格,3D,坐標系之間的轉換,所以如果這是你正在尋找的,PostGIS仍然是最好的選擇。 如果您有興趣存儲數十億/數萬億個空間對象,並且只是根據某些標准運行基本查找此點附近/內部的所有點,那么MongoDB可能是一個非常好的選擇。
Couchdb還具有簡單的空間擴展
我一直用ZODB存儲空間數據。 與TCP或HTTP請求(CouchDB等)相比,在訪問本地文件數據(spatialite)或unix socket(PostGIS)時有一些固有的性能優勢,但是,擁有空間索引會產生最大的差異。 我使用的是MongoDB文章中提到的相同的R-tree,但有很多不錯的選擇。 JTS拓撲套件具有各種Java空間索引。
Tarantool支持具有最近鄰搜索,重疊,包含和其他空間運算符的空間二維索引(RTREE)。 Tarantool將整個數據集保存在RAM中,使其成為唯一具有空間索引支持的OSS內存數據庫。 https://github.com/tarantool/tarantool/wiki/R-tree-index-quick-start-and-usage
Cassandra也是空間數據的一個選項:
http://www.readwriteweb.com/cloud/2011/02/video-simplegeo-cassandra.php
MarkLogic(Enterprise NoSQL)提供空間功能。 此NoSQL產品為GIS應用程序提供了將多個對象合並為一個實體的功能。 這為在單個實體中管理有關數據,歷史和時間線信息等的結構化和非結構化內容,起源和譜系信息之間的關系提供了支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.