日期:2014-05-16  浏览次数:20411 次

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