Hadoop 和DBMS 的互补性

随着Microsoft 也加入Hadoop 阵营,Hadoop 已经完全变成了DBMS 的好朋友了 , 2年之前的SIGMOD组织提出的“A Comparison of Approaches to Large-Scale Data Analysis”引发了关于并行数据库和MapReduce模型的讨论, 双方唇枪舌剑之后发现两个系统根本就是各有所长, DBMS 目前有些处理好的领域和商业支持,Hadoop 也有自己的优势和使用案例.

    就如前一篇TDWI 所说的3个V 问题,新一代Hadoop MapReduce 主要解决的是数据容量和多种类型的数据(结构化,半结构化,非结构化). 而传统的MPP DBMS 解决的主要还是速度,低延迟,实时性的问题.

 

DBMS Hadoop
低延迟,一般响应时间为秒 高延迟,一般响应时间最少为分钟
较高的吞吐(同一时间执行sql数) 可以提交很多任务,但不一定快速执行.
处理的数据量有限制(目前为P) 可以处理大量的数据(从10p到1E)
硬件有特殊需要,不能随时添加 硬件可随时添加,增加计算能力
假设机器是随时可用的,不对失败做处理 默认机器故障时正常的,可以容忍机器失效并用其它迅速机器替代
数据库模式过渡优化 对数据格式没有限制
数据满足完整性(外键) 用户程序需要自己验证完整性
必须提前知道使用模式并进行优化
或者根据使用一段时间之后的情况进行特定优化
面对未知的使用模式,常规使用模式可以做一定程度的优化.
需要添加额外的优化计算(索引,分区等) 大部分情况不用额外优化
CPU,内存,磁盘,网络利用率较为高效 资源利用率不算高效,人为优化需要较多技巧,目前没有DBMS 优化技术成熟


 
储存能力有限, 磁盘不能随意扩展 储存能力极高,随时可以按需扩展
磁盘比较昂贵,经常访问的数据可使用高端SSD 廉价磁盘,随意保存多份数据防止丢失
线型扩展能力一般, 一般到几百台机器有瓶颈 极高的线型扩展能力,目前yahoo 的为4000台,下一代Hadoop 目标6000 – 10000台
不具备开放性,必须数据库厂商提供功能 高端开放性,大多数组织参与合作
分析能力需要默认提供 可以自己编写UDF 函数,随时扩展功能.
不太适合用来保存过多的历史数据 可以保存任意多的历史数据,随时可以访问.
不能处理半结构化或非结构化的数据 可以处理XML,图片,音频视频等任意格式数据
有厂商在数据库内提供MapReduce功能
(Aster Data 和Greenplum)
有厂商希望在Hadoop 内添加MPP DBMS 的特性降低延迟提高吞吐能力(Hadapt , MapR)
可以随时装载最新数据并查询和分析 一般都是批量处理 , 需要特定的技术才能进行实时或叫准实时的计算
实施费用较为昂贵 免费开源
人员培训较为简单,拥有成熟的人才市场 需要IT 人员拥有较高的技能,而且培训较少.

  

目前DBMS 还是在其关系型领域拥有绝对的竞争力, 适合多种不同的功能需要.

Hadoop 目前还是主要以廉价的解决方案,活跃的社区,储存能力和非结构化数据的处理见长.

目前有名的数据仓库提供商都开始在自己的产品线里面提供直接的Hadoop 集成,帮助用户选择合适的技术做合适的事情.

一些比较成功的数据仓库使用者都会同时使用DBMS 和Hadoop , 比如Ebay, Walmart, Yahoo, LinkedIn等

一些特殊的行业也会完全使用Hadoop 做其数据仓库的完整解决方案. 比如Facebook , Twitter .

 

Microsoft 加入Hadoop 估计也就是提供一下Windows 的便捷开发的然后骗骗用户“我们有大规模计算的能力了”,估计真要在Windows 服务器上跑Hadoop 效果可想而知.

 

 

参考资料

争论之后的A Comparison of Approaches to Large-Scale Data Analysis

http://database.cs.brown.edu/projects/mapreduce-vs-dbms/

 

转自:http://www.gemini5201314.net/bi/hadoop-%e5%92%8cdbms-%e7%9a%84%e4%ba%92%e8%a1%a5%e6%80%a7.html#more-1305

你可能感兴趣的:(hadoop)