簡體   English   中英

NoSQL和空間數據

[英]NoSQL and spatial data

你們有沒有使用NoSQL(非關系型)數據庫存儲空間數據的經驗? 是否有任何潛在的好處(速度,空間......)使用這些數據庫來保存桌面應用程序的數據(與使用SpatiaLite或PostGIS相比)?

我已經看過關於將MongoDB用於空間數據的帖子 ,但我對一些性能比較感興趣。

Neo4j這樣的圖形數據庫非常適合,特別是因為你可以動態地添加不同的索引方案。 您可以對基礎數據執行的典型操作當然是1D索引(例如Timline或B-Trees)或者像Hilbert Curves等更有趣的東西,請參閱Nick的博客 此外,對於一些現場演示,請在此處查看AWE開源GIS桌面工具,底層索引圖在07:00左右可見。

目前,MongoDB使用B樹進行地理分割,這將比PostGIS的R樹慢(我不能給出確切的數字,我擔心,但是有很多關於這些差異的理論文獻)。 但是,在這些幻燈片中, http: //www.slideshare.net/nknize/rtree-spatial-indexing-with-mongodb-mongodc作者討論了如何在MongoDB中添加R-tree以及在地理密鑰上進行分片。 您談論桌面使用,因此地理分析可能不會引起關注,因為在大量數據集中會更多地感受到分片的好處。 最終,它可能更多地取決於您想要對空間數據做什么。 Postgis具有更多的功能和支持拓撲,柵格,3D,坐標系之間的轉換,所以如果這是你正在尋找的,PostGIS仍然是最好的選擇。 如果您有興趣存儲數十億/數萬億個空間對象,並且只是根據某些標准運行基本查找此點附近/內部的所有點,那么MongoDB可能是一個非常好的選擇。

Couchdb還具有簡單的空間擴展

http://vmx.cx/cgi-bin/blog/index.cgi/category/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM