首页 文章

使用mongodb或cassandra的空间数据

提问于
浏览
24

我正在考虑处理大量数据的概念证明,例如> 10 G,这需要每秒至少200次写入和每秒约50次空间相关数据读取 . 这也是一个不断发展的系统 . 目前我正在考虑出于性能原因将这个大容量数据转移到NoSql大表类数据库中 .

我已经考虑并仔细研究了MongoDB和cassandra . 就我的阅读而言,

Mongodb: - 似乎有一个编写器锁定问题 - 如果不需要多个服务器,stackoverflow中的一个帖子建议使用此数据库 - 索引保留在内存中 . 因此,指数增长越大,性能就越差 - Mongodb直接支持空间数据和索引以及查找附近位置等功能,我认为这个帖子Cassandra Or MongoDB For Our Location Based Application暗示mongodb是最好的选择

Cassandra :

  • 似乎是相关dbs中最好的 - 似乎有很好的写入和读取性能 - 本身不支持空间索引,但这可以通过geohashing扩展

我的心实际上是因为其良好的文档和对空间数据的直接支持而为mongodb服务 . 是否有任何机构在使用mongodb进行大型系统方面有不良经验?我实际上在mongodb iostat上看到很多关于性能的帖子 .

如果mongodb不适合,有人可以使用cassandra给出一些关于geohashing的指示吗?我看到链接http://code.google.com/p/geospatialweb/用于创建哈希 . 但是如何查询等问题呢?

3 回答

  • 0

    我意识到这是一个较老的问题,我知道它并没有直接回答你的问题,但根据你的疑问,Cassandra可能不是最好的选择,并且你的查询在MongoDB中使用索引也可能会有问题(根据我自己的经验) . Mongo与Cassandra略有优势,可以获得重要的地理数据和查询 .

    我建议也考虑调查ElasticSearch,根据您的数据形状和您将要进行的查询类型可能是最佳解决方案 . 当你发布你的问题时,它可能不是今天的选项 .

  • 1

    试试Cassandra Solr . 这可能很有用:http://digbigdata.com/geospatial-search-cassandra-datastax-enterprise/

    此致,Goutham Kumar

  • 4

    我们目前也使用Cassandra并寻找空间索引解决方案 . 我们选择Lucene来提供全文和归因搜索,并随之支持spartial索引 . 也许你想检查这个 .

    我们当前的实现看起来像是基于简单树(基于网格)对信息进行分片,并且每个分片都是Lucene索引,一旦它增长到一定大小,索引就会被x或y分割 . 并且由于这样的分片具有二进制表示(网格中的位置由两个位组成,下一个级别接下来是2位,依此类推),由位置发出搜索,并且将由位置/网格分辨率的任何分片帽子前缀应答 . 到目前为止,简单的系统运行良好,但目前尚未高效使用 .

相关问题