我正在考虑一种概念证明,用于处理大量数据,例如>10G,它至少需要每秒200+写入和大约每秒空间相关数据的50+读取。这也是一个不断发展的系统。目前,出于性能原因,我正在考虑将这些大容量数据移动到NoSql大表类型的数据库中。
我已经考虑并仔细研究了MongoDB和cassandra。据我所知,
Mongodb:-似乎有一个编写器锁定问题- stackoverflow中的一个帖子建议这个数据库,如果不需要多个服务器-索引保存在内存中。所以索引增长越大,性能就会下降--优点是Mongodb直接支持空间数据和索引,以及查找附近位置等功能--我看到这篇文章Cassandra Or MongoDB For Our Location Based Application建议mongodb是最佳选择。
卡桑德拉:
进行扩展
我非常喜欢mongodb,因为它有很好的文档和对空间数据的直接支持。有没有人在这么大的系统上使用mongodb有不好的经验?实际上,我在mongodb iostat上看到了很多关于性能的帖子。
如果mongodb不适合,有人能给出一些关于使用cassandra进行地理散列的建议吗?我看到了用于创建散列的链接http://code.google.com/p/geospatialweb/。但是有关于如何查询等问题呢?
发布于 2014-05-30 07:31:37
我知道这是一个老问题,我知道它没有直接回答你的问题,但根据你的查询,Cassandra可能不是最好的选择,而且让你的查询在MongoDB中使用索引也可能是有问题的(根据我自己的经验)。在繁重的地理数据和查询imho方面,Mongo比Cassandra略有优势。
我还建议考虑使用ElasticSearch,这取决于您的数据形状和要进行的查询类型,这可能是最好的解决方案。然而,当你发布你的问题时,它可能比今天更不可取。
发布于 2015-12-07 20:27:12
试试Cassandra + Solr。这可能很有用:http://digbigdata.com/geospatial-search-cassandra-datastax-enterprise/
致敬,古瑟姆·库马尔
发布于 2019-06-02 00:36:49
tl;dr
Elassandra是Cassandra和ElasticSearch的组合。
来自未来的一些更新。
我目前正在创建一个大数据实时系统的概念,还需要存储地理空间数据和进行大规模查询。在过去的几天里,我做了很多研究,如何正确地排列数据,并能够像边界框一样支持地理空间索引和查询。
我读到的第一篇文章是PostgreSQL + Postgis,但最大的实例限制在每秒最多200k写入。
第二个是地理空间数据库Tile38,它能够扩展查询,但不能扩展写入。这样做的唯一方法是手动切分数据。
第三个是MongoDB,因为在那里你可以找到一个很好的文档来支持我需要的地理空间功能,但是很难决定你是否能够扩展写操作。
最后一个数据库是Cassandra。该数据库以水平写入缩放和故障接管而闻名。与Cassandra的权衡是,查询数据没有良好的性能,并且不支持现成的地理空间。正如Tracker1所建议的,对于大规模的数据查询,ElasticSearch是一个很好的解决方案。今天,我发现了一个由Cassandra和ElasticSearch组成的新数据库,叫做Elassandra,它允许大规模写入,也可以近乎实时地大规模读取数据。到目前为止,对我来说是最好的解决方案,只需最少的设置和维护工作。
https://stackoverflow.com/questions/7903712
复制相似问题