习惯用MapReduce来做mongodb的聚合,这一次遇到一点小问题。
原数据如下:
使用一个简单的MapReduce来验证一下数据
map=function (){
emit({clientKey:this.clientKey},{dtime:this.dtime,itime:this.itime,rtime:this.rtime,stime:this.stime})
}
reduce=function (key,values){
return {v:values};
}
db.u2d2i2r2s_log.mapReduce(map,reduce,{out:"mr2"})
运行之后的数据如下:
value里面包含了多层v
这是为什么呢?
官方文档: http://docs.mongodb.org/manual/reference/method/db.collection.mapReduce/#db.collection.mapReduce
这段话的意思是,reduce函数有可能在执行一个任务是可能会被调用多次,而不是我们理解的传统的方法中,一次任务只调用一次,所以,reduce函数必须是幂等的。简单来说,就是reduce函数中接收的value参数的形式,必须和reduce函数返回的结果value的形式一致。
所以,reduce函数必须幂等。
参考博客:http://gong1208.iteye.com/blog/1841640
- 大小: 26.6 KB
- 大小: 37 KB
分享到:
相关推荐
在 MongoDB 中,MapReduce 功能可以用来进行数据聚合、统计分析以及创建索引等任务。 1. **Map 函数**: - Map 函数由用户自定义,用于遍历输入文档,提取关键信息,并生成中间键值对。例如,你可以用它来统计网站...
通过这个MongoDB MapReduce实例,我们可以实时监控和分析订单数据,例如每天的销售额、最畅销的商品等,这对电子商务平台的运营决策至关重要。同时,MapReduce也支持分布式计算,能够处理海量数据,适应不断增长的...
总之,MongoDB的MapReduce功能提供了处理大数据集的灵活性,适用于复杂的聚合需求。然而,对于简单聚合操作,通常建议使用MongoDB的内置聚合框架,因为它通常更高效。理解MapReduce的工作原理和最佳实践对于优化大...
总结来说,MongoDB的MapReduce是一种强大的工具,它利用Map和Reduce两个阶段实现大规模数据处理的并行化,适合处理海量数据的统计、聚合等任务。通过编写自定义的`map`和`reduce`函数,用户可以根据自己的需求定制...
MongoDB的MapReduce是一种在大型数据...然而,需要注意的是,MapReduce可能不适合实时查询,因为它通常涉及磁盘I/O和内存消耗,对于性能要求高的场景,可以考虑使用其他数据处理方法,如聚合框架或MongoDB的TTL索引等。
MongoDB与Hadoop MapReduce的海量非结构化数据处理方案 本文旨在探索基于MongoDB与Hadoop MapReduce的海量非结构化数据处理方案,旨在解决大数据时代下的数据处理难题。该方案通过MongoDB Cluster、MongoDB-...
MongoDB 是一个流行的开源NoSQL数据库系统,以其灵活性、高性能和可扩展性而著称。在高可用性和数据可靠性方面,MongoDB 提供了复制集(Replica Sets)这一核心特性,确保即使在单个服务器故障的情况下也能保持服务...
计算机后端-PHP视频教程. mongodb10 MapReduce 统计栏目下的商品.wmv
计算机后端-PHP视频教程. mongodb08 导出导入.wmv
这个设置非常重要,因为它将影响mongoDB的性能和可靠性。在生产环境中,通常将数据库文件存储在独立的磁盘卷上,以提高性能和可靠性。 二、日志文件路径(logpath) MongoDB的日志文件路径是指mongoDB日志文件的...
8. MapReduce:虽然现代MongoDB推荐使用聚合框架,但MapReduce仍然是一种处理大数据的手段,用于批量数据处理和分析。 9. 安全性:MongoDB支持用户认证、角色权限控制和加密通信,保障数据安全。 10. 应用集成:...
MongoDB是一种开源的文档类型数据库,它具有高性能、可扩展、高可用、自动收缩等特性。MongoDB能够避免传统的ORM映射,从而有助于开发。MongoDB中的每一行记录就是一个文档,它是一个由键值对构成的数据结构,...
为了保证数据的安全性和服务的高可用性,MongoDB提供了复制集功能。通过复制集,数据可以在多个节点间同步,当主节点出现问题时,可以自动切换到备份节点。理解复制集的工作流程、选举机制和故障恢复策略是保证系统...
7. **安全和权限管理**:测试数据也可能涉及到用户角色和权限的设定,让你了解如何在MongoDB中实现安全性。 在使用这些测试数据时,你应该逐一实践每个操作,对比预期结果,理解MongoDB的工作原理。同时,你也可以...
MongoDB是一种流行的开源文档数据库系统,它属于NoSQL数据库类别,以其灵活性、可扩展性和高性能而受到广大开发者的青睐。本资料集包含了"Mongodb中文学习手册"和"Mongodb权威指南(第2版)"的英文版,是深入理解并...