Mongo支持Map/Reduce查询,但它们似乎并没有在Hadoop意义上并行减少(并行运行)。在大型Mongo数据库上运行查询的最佳方式是什么?我需要将它导出到另一个地方吗?什么是在Mongo上执行大数据查询的最佳方式?
2
A
回答
1
取决于正是你需要做什么,你的选择(而内停留蒙戈)是:
1)继续使用的map/reduce在蒙戈,但火起来的M/R目的,一些次级。这是并行map reduce的一种简单方法。但是有限制,你只能使用“out:inline”选项,所以结果需要大约16MB或更少。如果你尚未分解,这只有真正的可行。
2)看看2.234中的aggregation framework(2.2.0-rc0不存在,我们发现它在MongoHQ中非常稳定)。这在数据库级别上得到了更好的优化,大多让你摆脱了笨拙的JavaScript引擎,并且是10gen添加的更有趣的功能之一。它也将在分散的环境中工作。
对于上述任何一种情况,您都希望确保有足够的RAM(或真正快速的磁盘)来保存所有输入数据,中间步骤和结果。否则,你会受到IO速度的限制,并且不会从CPU中获取太多的功能。
如果您想走出Mongo,您可以尝试Mongo Hadoop适配器。 Hadoop是一种更好的map/reduce方法,这可以让你使用Mongo数据作为输入。这可能在操作上很复杂,但是,这意味着要么费力,要么脆弱。
相关问题
- 1. 在Mongo中存储/查询`last_read`的最佳方式是什么?
- 2. 在laravel中执行此查询的最佳方式是什么?
- 3. 在Mongo的数据上运行Map/Reduce的最佳方式是什么?
- 4. 什么是查询的最佳方式?
- 5. 什么是MySQL查询的最佳数据包(查询)大小?
- 6. 什么是保护数据库查询的最佳方式?
- 7. 在C中执行查找表的最佳方式是什么?
- 8. 在非常大的树上执行DFS的最佳方式是什么?
- 9. 使用大量数据创建查询的最佳方式是什么?
- 10. 记录和查询大量事务数据的最佳方式是什么?
- 11. 在mongo中验证数据的最佳方法是什么?
- 12. 什么是使用SQLiteOpenHelper进行JOIN查询的最佳方式
- 13. 执行数学表达式的最佳方法是什么?
- 14. 返回最近一行数据的最佳方式是什么?
- 15. 在iPhone上存储数据的最佳方式是什么?
- 16. 在Mongo中组织子文档的最佳方式是什么?
- 17. 什么是全球同步大量数据的最佳方式?
- 18. 处理大型数据表的最佳方式是什么?
- 19. 创建大量虚拟数据的最佳方式是什么?
- 20. 大量数据 - 发送它们的最佳方式是什么?
- 21. 什么是缓存数据库查询的最佳方法
- 22. 在android中执行多个listviews的最佳方式是什么?
- 23. 在Android中构建SQL查询的最佳方式是什么?
- 24. 将1,600,000行数据上传到mysql数据库的最佳方式是什么?
- 25. 在mysql中处理大型递归查询的最佳方式是什么?
- 26. 从核心数据查询行数的最佳方法是什么?
- 27. 从网站上抓取数据的最佳方式是什么?
- 28. 在Perl中执行XPath查询XML数据的最简单方法是什么?
- 29. 什么是处理回收视图上的大量数据的最佳方式
- 30. 什么是测试查询性能的最佳方式的Rails
海量有多大? – MrKurt 2012-07-20 23:56:47
你的数据集有多大?你有没有需要运行的查询的例子? Map/Reduce不是唯一的选项... MongoDB支持多个[Indexes](http://www.mongodb.org/display/DOCS/Indexes)和[Query operators](http://www.mongodb.org)/display/DOCS/Advanced + Queries),并且在2.2中有一个[Aggregation Framework](http://docs.mongodb.org/manual/applications/aggregation/)。 – Stennie 2012-07-20 23:59:31