mongodb hbase hadoop 的区别: 对大数据分析的区别,怎么去选择技术? ...
如果从算法+数据结构这个角度去看待,mongodb hbase属于数据结构,是一种数据库,而Hadoop属于并行算法,用最通俗比喻可能不太确切:mongodb hbase相当于数据表的结构和数据记录,负责数据的存储;而Hadoop类似SQL语句,负责数据的计算。
以前我们是在一个关系数据库中集合了这些,如同傻瓜相机集合了光圈和快门一样,而随着大数据诞生,就需要单反手工可调校的光圈和快门了,这时我们将数据的存储和计算要进行分离。
如果从“过程”和“结果”这个更高抽象来看,计算属于过程,存储的是结果。而你在第一篇中谈到离不开“服务实现和接口”,也属于“过程”,和Hadoop计算属于同一类。
过去我们的“服务”通常是直接调用SQL语句操作数据库,这些SQL语句实际是一个计算过程,比如排序归类筛选,以前都是依靠关系数据库内部实现,这种自动相机缺点是不能针对自己项目优化,所以,我们强调根据自己的业务提炼自己的领域模型,然后根据领域模型选择相应的特定的计算功能:排序归类筛选。
大数据属于一种通用的业务领域模型,这类业务特点数据的非结构化,没有太多紧密的关联关系,不是一种层次感的结构数据,那么根据这种业务模型选择相应技术架构,HBase+Hadoop替代关系数据存储+SQL。
当然,因为Hadoop是直接针对文件系统的排序筛选,性能没有直接针对In-memory内存计算快,针对这个缺点,现在基于内存计算的类似Hadoop也百花齐放,加上专门为“过程计算”定制的语言如Scala,大数据分析将迎来实时分析的时代。(见Hadoop生态链:Hive, Pig, Scalding, Scoobi, Scrunch 和 Spark等hadoop框架比较)
mongodb hbase这两个NoSQL数据库之间区别主要从CAP定理去区分。
[该贴被banq于2012-06-03 08:02修改过]