MongoDB:MapReduce基础及实例
2015-01-31 23:19
239 查看
背景
MapReduce是个非常灵活和强大的数据聚合工具。它的好处是可以把一个聚合任务分解为多个小的任务,分配到多服务器上并行处理。MongoDB也提供了MapReduce,当然查询语肯定是JavaScript。MongoDB中的MapReduce主要有以下几阶段:
1. Map:把一个操作Map到集合中的每一个文档
2. Shuffle: 根据Key分组对文档,并且为每个不同的Key生成一系列(>=1个)的值表(List of values)。
3. Reduce: 处理值表中的元素,直到值表中只有一个元素。然后将值表返回到Shuffle过程,循环处理,直到每个Key只对应一个值表,并且此值表中只有一个元素,这就是MR的结果。
4. Finalize:此步骤不是必须的。在得到MR最终结果后,再进行一些数据“修剪”性质的处理。
MongoDB中使用emit函数向MapReduce提供Key/Value对。
Reduce函数接受两个参数:Key,emits. Key即为emit函数中的Key。 emits是一个数组,它的元素就是emit函数提供的Value。
Reduce函数的返回结果必须要能被Map或者Reduce重复使用,所以返回结果必须与emits中元素结构一致。
Map或者Reduce函数中的this关键字,代表当前被Mapping文档。
实例
测试数据: 这个集合是三个用户购买的产品和产品价格的数据。db.test.mapReduce(map,reduce,{query:{price:{"$gt":6}},out:"mr5"})
总结
MongoDB中的MR工具非常强大,文中的例子只是基础实例.结合Sharding后,多服务器并行做数据集合处理,才能真正显现其能力.如果后续有时间,希望能总结和分享更多关于MongoDB,关于SQL Server的东西.
相关文章推荐
- MongoDB:MapReduce基础及实例
- MongoDB:MapReduce基础及实例
- hadoop mapreduce 基础实例一记词
- MongoDB使用mapReduce实例
- MongoDB中MapReduce编程模型使用实例
- MongoDB使用mapReduce实例
- Hadoop那些事儿(四)---MapReduce编程实例(基础)
- MongoDB与Hadoop结合之使用MapReduce官方实例
- MongoDB基础(3.6安装及多实例)
- Mongodb_基础实例
- MongoDB上MapReduce的实现以及项目实例探索
- Mongodb3.0 java MapReduce实例
- mongodb基础之用户权限管理实例教程
- MongoDB中MapReduce编程模型使用实例
- mongodb mapReduce实例
- javascript基础实例
- Javascript & DHTML 实例编程(教程)DOM基础和基本API
- AJAX 基础,简单的实例:计算器
- html 基础实例
- Java 编程基础,应用与实例