非常完美周凯和芷萱:基于MongoDB MapReduce的统计分析
来源:百度文库 编辑:九乡新闻网 时间:2024/07/07 14:48:59
2010-12-10 10:04
前面已经简单介绍了MongoDB在OECP社区的一个应用:动态消息的设计实现。在上次的应用中,我们只介绍了MongoDB最基本的查询的功能,今天我再介绍一下MongoDB更加高级的应用:用MongoDB做统计分析。
OECP社区中,我们为了更加准确的分析网站的访问情况,以便能够为用户更准确的推荐他们感兴趣的内容,我们需要将页面的访问记录存储下来。对于这些数据,主要由以下几个特点:
与业务无关,尽量将数据存储和业务数据分离,减少业务数据库的压力。而且对数据的一致性要求不高。
每当访问一个页面就要存储一条记录,实时插入操作的要求很高,当然可以使用缓存作为临时缓冲来解决数据频繁更新的问题。
数据随着访问量的增长膨胀的很快,如果一个页面1天有100个PageViews,将会新增100条数据,数据量远远高于业务数据,而且要比我们上次说的消息动态的数据的数量级要大得多。网站要尽量存储至少两个月的数据,当网站访问量很大的时候,要解决的是海量数据的存储。
所以从存储上考虑,我们依然选择了MongoDB作为持久存储。由于NoSQL数据库在数据查询的多样性能力太低,特别是标准的Key-Value数据库,一般的做法就是用NoSQL负责日志的存储,分析需要将数据抽取到关系数据库中再进行统计查询。但是MongoDB却提供给我们非常丰富的查询统计功能,group 和MapReduce都能实现SQL中group by,sum,count之类的统计查询分析。Group的功能已经可以实现简单的统计功能,但是当数据量非常大的时候,group处理能力就不太好了,所以我们一开始就使用MapReduce进行统计分析。
先看一下官方对MapReduce的介绍:
db.runCommand(
{ mapreduce :,
map :,
reduce :
[, query :]
[, sort :]
[, limit :]
[, out :]
[, keeptemp:]
[, finalize :]
[, scope :
前面已经简单介绍了MongoDB在OECP社区的一个应用:动态消息的设计实现。在上次的应用中,我们只介绍了MongoDB最基本的查询的功能,今天我再介绍一下MongoDB更加高级的应用:用MongoDB做统计分析。
OECP社区中,我们为了更加准确的分析网站的访问情况,以便能够为用户更准确的推荐他们感兴趣的内容,我们需要将页面的访问记录存储下来。对于这些数据,主要由以下几个特点:
与业务无关,尽量将数据存储和业务数据分离,减少业务数据库的压力。而且对数据的一致性要求不高。
每当访问一个页面就要存储一条记录,实时插入操作的要求很高,当然可以使用缓存作为临时缓冲来解决数据频繁更新的问题。
数据随着访问量的增长膨胀的很快,如果一个页面1天有100个PageViews,将会新增100条数据,数据量远远高于业务数据,而且要比我们上次说的消息动态的数据的数量级要大得多。网站要尽量存储至少两个月的数据,当网站访问量很大的时候,要解决的是海量数据的存储。
所以从存储上考虑,我们依然选择了MongoDB作为持久存储。由于NoSQL数据库在数据查询的多样性能力太低,特别是标准的Key-Value数据库,一般的做法就是用NoSQL负责日志的存储,分析需要将数据抽取到关系数据库中再进行统计查询。但是MongoDB却提供给我们非常丰富的查询统计功能,group 和MapReduce都能实现SQL中group by,sum,count之类的统计查询分析。Group的功能已经可以实现简单的统计功能,但是当数据量非常大的时候,group处理能力就不太好了,所以我们一开始就使用MapReduce进行统计分析。
先看一下官方对MapReduce的介绍:
db.runCommand(
{ mapreduce :
map :
reduce :
[, query :
[, sort :
[, limit :
[, out :
[, keeptemp:
[, finalize :
[, scope :
基于MongoDB MapReduce的统计分析
Mongodb Mapreduce 初窥
Mongodb Mapreduce 初窥
MongoDB: 10. MapReduce
基于Mongodb进行分布式数据存储
调查问卷的统计分析方法
mongodb有关的研究
matlab 实验05数据的统计分析(终于找到了)
市场调研中调查问卷的统计分析方法(转载1)
【教程】野心勃勃的NoSQL新贵 MongoDB应用实战(2) - MongoDB服务器安装
【教程】野心勃勃的NoSQL新贵 MongoDB应用实战(6) — MongoDB客户端访问 – C#
四、MongoDB客户端访问 – C#-野心勃勃的NoSQL新贵 MongoDB应用实战-...
基于策略的路由!!
Hadoop MapReduce 学习 -
MapReduce 中文版论文 ? 人云亦云
MapReduce源码分析总结
streaming实现mapreduce
MongoDB的应用:动态消息的设计实现
【教程】野心勃勃的NoSQL新贵 MongoDB应用实战(1)
野心勃勃的NoSQL新贵 MongoDB应用实战(3)
Mongodb亿级数据量的性能测试
Mongodb 的ORM框架 Morphia 之 使用Morphia(映射对象)
MongoDB 优化
基于SIP的视频会议系统研究