用于数字运算的最快的nosql选项?

时间:2011-06-01 17:00:34

标签: ruby mongodb hypertable database nosql

我一直以为Mongo在mapreduce功能方面表现出色,但我现在读到这是一个缓慢的实现。因此,如果我不得不选择基准测试的替代方案,它应该是什么?

我的软件将会是这样的,用户通常会拥有数百万条记录,并且经常通过不可预测的10个或100个数千个子集进行排序和处理。大多数使用数百万条记录的数据分析都可以在汇总表等中完成。我原本以为Hypertable是一个可行的选择,但在研究中我在他们的文档中看到他们提到Mongo将是一个更高效的选择,而Hypertable则有其他好处。但对于我的申请,速度是我的首要任务。

1 个答案:

答案 0 :(得分:1)

首先,决定什么是“足够快”是很重要的。毫无疑问,解决方案比MongoDB的map / reduce更快,但在大多数情况下,您可能会看到更高的开发成本。

那就是说MongoDB的map / reduce在编写时运行在单个线程上,这意味着它不会利用它可用的所有cpu。此外,MongoDB几乎没有本机聚合功能。这将更改为2.1版以后版本,但可以改善效果(请参阅https://jira.mongodb.org/browse/SERVER-447http://www.slideshare.net/cwestin63/mongodb-aggregation-mongosf-may-2011)。

现在,MongoDB擅长的是轻松扩展,特别是在读取方面。这很重要,因为大数据集上数字运算的最佳解决方案肯定是像Augusto建议的地图/减少云。让这样的m / r进行数字运算,而MongoDB以高速提供所需的数据。通过添加更多mongo分片可以轻松解决数据库查询吞吐量过低的问题。通过添加更多m / r框解决了数字运算/聚合性能太慢的问题。基本上,性能会成为您为问题保留的实例数量的函数,从而降低成本。