MySQL、MongoDB还是Hadoop-记录

9 篇文章 0 订阅
2 篇文章 0 订阅

本文是根据一个谷歌论坛上的话题的讨论,想了解一下mongoDB、hadoop、mysql的相关对比,以及如何合理的使用。

问题如下:

这是一个mongodb-user的google group上的讨论。LZ是一个广告公司的技术人员,需要对500M行(5亿行)的log信息进行存储和数据分析工作,他将这一问题提到group中,并提出了自己的三种想法:

  1. 将5亿行每行50个字段的数据存在Mysql中-对每一个字段做索引。
  2. 同上,不过是将亿行数据存在MongoDB中并建索引。
  3. 将所有行加载到Hadoop中,通过MapReduce进行数据分析。

这是一个常见的问题,我们可以先试着自己思考一下解决方案,然后再来看帖子后面各路神仙们的方法吧。

下面是本讨论的地址:

http://groups.google.com/group/mongodb-user/browse_thread/thread/632d1648707e51d9/9a504c99168cf4e7?pli=1

建议:

1、mongoDB作为storage layer,hadoop做processing

2、mongoDB不适合经常做插入性更新的数据(需要手工做分片(需要吗现在?)),1.6之后的mongoDB已经支持分片了

3、mongoDB的javascript-based的mapreduce是一个轻量级的线程,可能成为数据处理的bottleneck但是可以自己写一个mapreduce程序

4、hadoop-plugin是什么意思?是mongoDB提供了InputReader, InputSplit, etc?  回答:这帮人真的要写一个hadoop上的jar包....

5、认为hadoop+mongoDB会是个很prefect组合,

查询是这样的:SELECT OS, SUM(IMPS), SUM(CLICKS) FROM TABLE WHERE CC = 'US' AND  ISMOBILE = 1 GROUP BY OS; 

storage in mongoDB

use mongo as the input into hadoop, using mongo's index for CC="US" &&  ISMOBILE=1 

use hadoop to do the aggregation

store the result in mongoD

6、也有认为不合适的,因为mongoDB的查询索引之类的可能比不上mysql所以,mongoDB可能只是做了前期的存储工作,可以没有!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值