题
你们中有人有过使用NoSQL(非关系型)数据库存储空间数据的经验吗?使用此类数据库来保存桌面应用程序的数据(与使用 SpatiaLite 或 PostGIS 相比)是否有任何潜在的好处(速度、空间……)?
我见过 有关使用 MongoDB 处理空间数据的帖子, ,但我对一些性能比较感兴趣。
其他提示
的CouchDB还具有简单的空间扩展
目前,MongoDB使用具有B-树,这将是比的PostGIS的R树(我不能给出确切的数字,恐怕,但有大量的理论文献的上的差异)较慢geohashing。然而,在这些幻灯片, http://www.slideshare.net / nknize / RTREE空间索引与 - MongoDB的-mongodc了解根据地理位置关键词追加R-树的MongoDB和分片笔者会谈。请您谈一下桌面使用,所以geosharding可能不感兴趣,因为分片的好处将体现更多的大规模数据集。 最终,这可能归结更要与您的空间数据做什么。 POSTGIS已大大更多的功能和支持的拓扑结构,光栅,三维坐标系统,所以如果这是你在找什么,PostGIS的仍然是最好的选择之间的转换。如果你有兴趣在存储数十亿美元/空间物体万亿,只是运行基本接近找到的所有点/基于一些标准,这点里面,然后MongoDB是一个可能非常不错的选择。
我已经存储与ZODB空间数据。有没有在访问本地文件数据(spatialite)或Unix套接字(PostGIS的)相比,TCP或HTTP请求(CouchDB的等),可以肯定,但有一个空间索引,使最大的区别一些固有的性能优势。我使用MongoDB的文章中提到的相同的R-树,但也有很多很好的选择。所述JTS拓扑套件具有不同的空间索引的Java。
Tarantool支持与最近邻搜索空间的二维索引(RTREE),重叠,包含,和其它空间的运营商。 Tarantool维持RAM整个数据集,成为唯一OSS内存数据库与空间索引的支持。 https://github.com/tarantool/tarantool /维基/ R-树索引快速启动和 - 使用
MarkLogic(企业的NoSQL)提供了空间的功能。这NoSQL的产品提供GIS应用混为一谈多个对象成一个实体的能力。这提供了用于在一个单一的实体管理有关数据,历史和时间表信息等跨结构化和非结构化内容,来源和系谱信息关系的支持。