大数据技术 vs 数据库一体机[转]
http://blog.sina.com.cn/s/blog_7ca5799101013dtb.html
目前,虽然大数据与数据库一体机都很火热,但相当一部分人却无法对深入了解这两者的本质区别。这里便对大数据技术(如Hadoop等,主要指MapReduce与NoSQL)与数据库一体机(新一代的主流关系数据库)技术对比如下:
硬件架构
从本质上来讲,两者的硬件架构基本相同,都是采用x86服务器集群的分布式并行模式来应对大规模的数据与计算。但是,数据库一体机的商家大都会对硬件体系进行面向产品化的、系统性的整体调优,同时也会有各自的特色手段,如Oracle ExaData的Infiniband,Flash Cache,IBM Nettezza的FPGA等。
软件体系
大数据与数据库一体机最核心的区别在软件体系上。
数据库一体机的核心是SQL体系,这不只是指SQL解析,更重要的是指包括SQL优化引擎、索引、锁、事务、日志、安全以及管理等在内的完整庞大的技术体系。它是成熟的,面向产品的;
大数据技术的MapReduce则提供了一个面向海量数据处理的分布式编程框架,而使用者需要自行编制所需要的计算逻辑。MapReduce对数据的读写是批量连续的,而不是随机的;而大数据技术的另一体系NoSQL则大都只是提供了海量数据的分布式存储与基于索引的快速读取机制,为使用者提供的大多是编程API(虽然也有类SQL的语言,但其本质并不是完整的SQL体系)。
由于SQL体系的复杂性与处理逻辑的整体关联性,导致数据库一体机在扩展性上是还是远不及大数据技术的,虽然数据库一体机已经在很大程度上改善了传统关系数据库垂直扩展的瓶颈。MapReduce与NoSQL的单个集群往往可以扩展到数千个节点,而数据库一体机如果在硬件上扩展到这个规模,从软件上来讲,已经是没有意义了!
特征表现
以上软件体系的本质不同,导致两者有不同的特征表现:
数据库一体机往往适合于存储关系复杂的数据模型(如企业核心业务数据),并且需要限制为基于二维表的关系模型;同时适合进行一致性与事务性要求高的计算,以及复杂的BI计算;
大数据技术则更适合于存储较简单的数据模型,并且可以不受模式的约束。因而其可存储管理的数据类型更丰富;大数据技术同时适合进行一致性与事务性要求不高的计算(主要是指NoSQL的查询操作),以及对超大规模海量数据的、批量的分布式并行计算(MapReduce)。
需要注意的是,NoSQL数据库由于摆脱了繁琐的SQL体系约束,其查询与插入的效率比数据库一体机要更高;大数据技术比数据库一体机所能处理的数据量也要相对大些,这主要是因为其集群可以扩展得更大。
本质描述
本质上讲,MapReduce是对海量数据分布式计算领域的一个重要创新,但也只是在适合于并行处理的大规模批量处理问题上更占优势,而对些例如复杂Join的操作,则不一定有优势;
而NoSQL本质上可以看做是对传统关系数据库进行简化的结果:由于NoSQL数据库的设计思想只是具备了关系数据库中的主索引特征,并加了上分布存储,而将SQL体系中那些对“某些特殊问题”来讲并不需要的东西统统不要了,因而达到了更优秀的效率、扩展性与灵活性。
于是可以很明显地看到,在实践中,有很多问题(特别是流行的大数据问题),关系数据库中的许多设计并不需要,这才是NoSQL出现的根本立足点。
关系与协作
于是,结论应该是:大数据技术与数据库一体机技术应该是相辅相成的,而不是互相替代的。它们针对不同的应用场景设计,并相互补充与合作。具体来讲:
大数据技术可以:
1. 处理企业内海量的、模型简单、类型多样的非结构化与半结构化数据(如社会化数据、各种日志甚至图片、视频等),其处理结果可以被直接使用;
2. 以上处理结果也同时可以被当成是新的输入存储到企业级数据仓库中,这时大数据技术相当于是面向大数据源的新的ETL手段;
3. 针对海量数据的、不太适合SQL操作的存储或计算。
而数据库一体机技术则应该还是做为企业数据仓库的主流技术,至少在很长一段时间内应该是这样,它存储与计算最主要的、有重大价值的企业关键业务数据。
一些误区
有人认为:虽然大数据技术的原始开源状态还不适合充当企业级数据仓库主平台的要求,但经过开发、补充,应该是可以的。
其实这个观点没有错。而实际上,对开源的大数据技术进行补充开发,所要补充的正是大数据技术在原始设计上就去除了的那些本属于关系数据库体系的东西,如果这样做:
1. 开发量有多大难以估计;
2. 一个企业难以像专业的数据库厂商那样实现这些工作的理论化、产品化与体系化;
3. 从纯技术上讲,当然开发什么都有可能!但您的企业如果这样做,是准备开发另一个商业化的关系数据库吗?
很明显,这违反了大数据技术的设计初衷!
大数据技术 vs 数据库一体机[转]的更多相关文章
- 除Hadoop大数据技术外,还需了解的九大技术
除Hadoop外的9个大数据技术: 1.Apache Flink 2.Apache Samza 3.Google Cloud Data Flow 4.StreamSets 5.Tensor Flow ...
- 大数据技术人年度盛事! BDTC 2016将于12月8-10日在京举行
2016年12月8日-10日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中国科学院计算技术研究所和CSDN共同协办的2016中国大数据技术大会(Big Data Technology ...
- 2016中国大数据技术大会( BDTC ) 共商大数据时代发展之计
中国大数据技术大会(BDTC)的前身是Hadoop中国云计算大会(HadoopinChina,HiC).从2008年仅60余人参加的技术沙龙发展到当下数千人的技术盛宴,目前已成为国内最具影响力.规模最 ...
- 大数据技术生态圈形象比喻(Hadoop、Hive、Spark 关系)
[摘要] 知乎上一篇很不错的科普文章,介绍大数据技术生态圈(Hadoop.Hive.Spark )的关系. 链接地址:https://www.zhihu.com/question/27974418 [ ...
- TOP100summit:【分享实录-WalmartLabs】利用开源大数据技术构建WMX广告效益分析平台
本篇文章内容来自2016年TOP100summitWalmartLabs实验室广告平台首席工程师.架构师粟迪夫的案例分享. 编辑:Cynthia 粟迪夫:WalmartLabs实验室广告平台首席工程师 ...
- Google大数据技术架构探秘
原文地址:https://blog.csdn.net/bingdata123/article/details/79927507 Google是大数据时代的奠基者,其大数据技术架构一直是互联网公司争相学 ...
- 开源大数据技术专场(上午):Spark、HBase、JStorm应用与实践
16日上午9点,2016云栖大会“开源大数据技术专场” (全天)在阿里云技术专家封神的主持下开启.通过封神了解到,在上午的专场中,阿里云高级技术专家无谓.阿里云技术专家封神.阿里巴巴中间件技术部高级技 ...
- 利用大数据技术处理海量GPS数据
我秀中国物联网地图服务平台目前接入的监控车辆近百万辆,每天采集GPS数据7亿多条,产生日志文件70GB,使用传统的数据处理方式非常耗时. 比如,仅仅对GPS做一些简单的统计分析,程序就需要几个小时才能 ...
- 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...
随机推荐
- Qt 圆角矩形+鼠标左键拖动窗口
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWind ...
- verilog中=和<=的区别
一般情况下使用<=,组合逻辑使用=赋值,时序逻辑使用<=赋值: 举个例子:初始化m=1,n=2,p=3:分别执行以下语句 1.begin m=n:n=p:p=m: end 2.begin ...
- Follow your heart
世界上最可怕的两个词,一个是执着,一个是认真.认真的人改变自己,执着的人改变命运.任何时候都别怕重来,每个看似低的起点,都是通往高峰的必经之路.不用抱怨那些不尽如人意,问问自己,你够努力了吗?转自人民 ...
- 修改 tomcat 内存
在Jetty 的VM参数中设置: -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m 在tomcat运行环境中设置: window环境 ...
- android权限列表
原文:[转]android权限列表 访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略 ...
- Siverlight+WCF+Nhibernate 开发之旅(一)
最近正在开发sl程序,考虑了很久,参考了一些框架,令人头疼的数据访问层最终选择wcf+nhibernate,至于为什么选择wcf和nh,个人参考了其他的框架感觉这两者结合从开发效率和便捷性方面比其他的 ...
- ubuntu下vim与系统剪切板互相拷贝
1.install xclip sudo apt-get install xclip 2. install gvim sudo apt-get install vim-gnome 此时使用 “+ 寄存 ...
- MFC的命令行
一个程序,我们通过输入不同的命令行参数,就可以实现一个可执行文件,多种功能,通过命令行来控制它的行为,例如,我们在控制台的时候,就是遇到最多的,如一个exe程序,加入为test..exe,我们可以设置 ...
- ECSHOP 模版文件里的编辑区域
Ecshop 中的模板能够有可编辑区域,在模板中是通过 <!-- TemplateBeginEditable name="左边区域" --> <!-- Templ ...
- linux学习 建立静态库,动态库,写简单的makefile
建立静态库 建立四个文件 bin(可运行文件),lib(库),include(头文件),src(放源文件) 这里的起的库明为add 在src文件里运行 1)gcc -c add.c //编译add.c ...