作为近期信息管理领域最为热门的两项技术,数据库一体机与大数据技术的硬件架构基本相同,但软件体系有着本质的区别,这也导致了两者拥有不同的特征表现。
随着企业数据量的快速增长,以及用户对服务水平要求的不断提高,相当长的一段时间以来,传统关系数据库技术在生产实践中表现出明显的能力不足。如何以合理的成本获得海量数据的高可用性已经成为现代IT领域的重大挑战。为了应对这一挑战,近年来,IT市场中相继出现了许多新的技术手段,其中最为引人注目的便是由主流数据库厂商主导的数据库一体机(例如Oracle ExaData以及IBM Netezza等),以及以开源力量为主的大数据技术。
不过,虽然数据库一体机与大数据技术都是当今的热门话题,并都已经被广泛应用,但却有相当一部分用户仍然无法深入了解两者之间的本质区别与关系。同时,很多用户也在为如何在企业内部对这两者进行正确定位而感到困惑。为此,本文特别对数据库一体机(也可称新一代主流关系型数据库)和大数据技术(例如Hadoop,主要指MapReduce与NoSQL)的相关技术特点进行对比。
硬件与软件
从本质上来讲,数据库一体机与大数据技术的硬件架构基本相同,同样是采用x86服务器集群的分布式并行模式,以应对大规模的数据与计算。但是,数据库一体机的卖家们通常会对其产品的硬件体系进行面向产品化的、系统性的整体调优,同时也会有各自的特色手段。比方说Oracle ExaData的Infiniband、Flash Cache,IBM Nettezza的FPGA(现场可编程逻辑门阵)等。[page] 数据库一体机与大数据技术最为核心的区别是在软件体系上。数据库一体机的核心是SQL体系,这不只是指SQL解析,更重要的是指包括SQL优化引擎、索引、锁、事务、日志、安全以及管理等在内的完整而庞大的技术体系。这一体系是成熟的、面向产品的。
大数据技术软件体系中的MapReduce则提供了一个面向海量数据处理的分布式编程框架,使用者需要自行编制所需要的计算逻辑。MapReduce对数据的读写是批量连续的,而不是随机的。而大数据技术的另一体系NoSQL则大都只是提供了海量数据的分布式存储,以及基于索引的快速读取机制,为使用者提供的大多是编程API(虽然也有类SQL的语言,但其本质并不是完整的SQL体系)。
由于SQL体系的复杂性与处理逻辑的整体关联性,导致数据库一体机在扩展性上远不及大数据技术体系,虽然前者已经在很大程度上改善了传统关系数据库垂直扩展的瓶颈。MapReduce与NoSQL的单个集群往往可以扩展到数千个节点,而数据库一体机如果在硬件上扩展到这个规模,从软件上来讲,已经是没有意义的了。
特征与本质
基于软件体系的不同,导致了数据库一体机和大数据技术有着不同的特征表现。数据库一体机往往适合于存储关系复杂的数据模型(例如企业核心业务数据),并且需要限制为基于二维表的关系模型。同时,数据库一体机适合进行一致性与事务性要求高的计算,以及复杂的BI计算。
大数据技术则更适合于存储较简单的数据模型,并且可以不受模式的约束。因而其可存储管理的数据类型更加丰富。大数据技术还适合进行一致性与事务性要求不高的计算(主要是指NoSQL的查询 *** 作),以及对超大规模海量数据的、批量的分布式并行计算(基于MapReduce)。
需要注意的是,NoSQL数据库由于摆脱了繁琐的SQL体系约束,其查询与插入的效率比数据库一体机更高。大数据技术比数据库一体机所能处理的数据量也相对大些,这主要是因为其集群可以扩展得更大。
从本质上讲,MapReduce是对海量数据分布式计算领域的一个重要创新,但也只是在适合于并行处理的大规模批量处理问题上更占优势,而对一些复杂 *** 作,则不一定具有优势。NoSQL则可以看作是对传统关系数据库进行简化的结果。由于NoSQL数据库的设计思想只是提取出关系型数据库的索引机制,并加了上分布式存储,把SQL体系中那些对“某些特殊问题”而言并不需要的东西统统删去,由此实现了更优秀的效率、扩展性与灵活性。[page] 因此,我们可以明显地看到,在实践中,有很多问题(特别是流行的大数据问题),关系数据库中的许多设计并不需要,这才是NoSQL发展壮大的根本立足点。
关系与协作
通过前面的分析,我们不难得出这样的结论:大数据技术与数据库一体机应该是相辅相成,并非互相替代的。它们针对不同的应用场景设计,并相互补充与合作。具体来说,大数据技术可以实现:
■处理企业内海量的、模型简单、类型多样的非结构化与半结构化数据(例如社会化数据、各种日志甚至、视频等),其处理结果可以被直接使用;
■以上处理结果也同时可以被当成是新的输入存储到企业级数据仓库中,这时大数据机相当于是面向大数据源的、新的ETL(提取-转换-加载)手段;
■面向海量数据的、不太适合SQL的存储或计算。
而数据库一体机则应该还是作为企业数据仓库的主流技术,至少在很长一段时间内应该是这样。它负责存储与计算最主要的、有重大价值的企业关键业务数据。
现存的误区
有些人认为,虽然大数据技术的原始开源状态还不适合充当企业级数据仓库主平台的要求,但经过开发、补充,应该是可以的。其实这个观点没有错。但实际上,对开源的大数据技术进行补充开发,所要补充的正是大数据技术在原始设计上就去除了的、那些本属于关系型数据库体系的东西。
如果进行这样的补充开发,企业不仅会面临庞大的、难于估计的开发工作量,同时也难以像专业数据库厂商那样实现这些工作的理论化、产品化与体系化。虽然从纯技术的角度上讲,开发什么都有可能。但是如果企业真的准备这样做,是要开发另一个商业化的关系数据库吗?很明显,这违背了大数据技术的设计初衷。
数据库技术与数据处理应用学的课程主要有《数学分析》、《高等代数》、《解析几何》、《概率论》、《数理统计》、《常微分方程》、《数据科学导论》、《高级语言程序设计》、《数据库原理》、《数据结构》、《统计预测与决策》、《数据建模》。
《数值最优化方法》、《数据算法与分析》、《应用时间序列分析》、《数据挖掘基础》、《统计推断》、《统计计算》、《机器学习》、《R语言与数据分析》、《Hadoop大数据分析》、《数据可视化分析》、《多元统计分析》等。
数据处理系统
在数据处理中,计算机硬件设备是一个必要条件,它是快速处理数据的保障。为了能够满足大型的数据处理,应该采用局域网或多级局域网形式进行全国性的数据处理和统计。
一般的数据处理可采用集中式数据存储方式进行,它适合于原始资料比较集中、数据量适中的数据处理,其结构管理比较方便,容易控制。大部分数据的处理都可以采用这种网络结构。对于数据量很大、原始资料分散、工作点多的情况(如人口普查),就采用多级局域网结构方式。
数据处理系统的软件平台,主要是 *** 作系统和数据库。 *** 作系统和数据库的选择主要根据具体的数据处理项目的大小、安全性要求等,还要考虑用户对所选软件的熟悉程度和现有硬件设备条件限制以及软件的价格等方面的因素,用户可以根据自己的需要选择合适的 *** 作系统和数据库系统。
在高考填报志愿选择专业时,很多考生对数据科学与大数据技术专业学什么的问题很感兴趣。下面是由我为大家整理的“数据科学与大数据技术专业的培养目标 学什么”,仅供参考,欢迎大家阅读本文。
数据科学与大数据技术专业的培养目标
数据科学与大数据技术课程教学体系涵盖了大数据的发现、处理、运算、应用等核心理论与技术。
本专业旨在培养社会急需的具备大数据处理及分析能力的高级复合型人才。
具体包括:掌握计算机科学、大数据科学与信息技术的基本理论、方法和技能,受到系统的科学研究训练,具备一定的大数据科学研究能力与数据工程实施的基本能力,掌握大数据工程项目的规划、应用、管理及决策方法,具有大数据工程项目设计、研发和实施能力的复合型、应用型卓越人才。
数据科学与大数据技术专业学什么
课程教学体系涵盖了大数据的发现、处理、运算、应用等核心理论与技术,具体课程包括:大数据概论、大数据存储与管理、大数据挖掘、机器学习、人工智能基础、Python程序设计、统计学习、神经网络与深度学习方法、多媒体信息处理、数据可视化技术、智能计算技术、分布式与并行计算、云计算与数据安全、数据库原理及应用、算法设计与分析、高级语言程序设计、优化理论与方法等。
主要课程:C程序设计、数据结构、数据库原理与应用、计算机 *** 作系统、计算机网络、Java语言程序设计、Python语言程序设计,大数据算法、人工智能、应用统计(统计学)、大数据机器学习、数据建模、大数据平台核心技术、大数据分析与处理,大数据管理、大数据实践等课程。
您好,上海蓝盟为您解答。
首先简单的看一下云计算与大数据的概念
1)云计算:云计算本质上是一种计算资源集中分布和充分共享的效用计算模式,其中集中是为了计算资源的集约化管理,分布是便于扩展计算能力集中分布式是针对云服务提供商的,充分共享是针对用户,在云计算中,虽然对于每个云用户来说都拥有一台超级计算机,但本质上,这些用户是充分共享了云服务商所提供的计算服务而效用计算更多的是一种商业模式,就是用户按所需服务来付费
2)在前面的博文中,对大数据有个讨论,简单的说,大数据的特点就是数据量大(虽然很多人都把大数据定义在T级别以上,其实我觉得这是有问题的,大数据的大其实应该是个相对概念,是相对于当前的存储技术和计算能力的),数据应用需求大,计算量大数据量大是最基本的,需求大其实包含了需求的数量、多样性和实时性计算量大是因为数据量大和需求量大和算法复杂(检索,推荐,模式识别)所致大数据的这种特点使得我们很难找到通用的处理模式来解决大数据所面临的问题,我们只能针对不同的需求采用不同的处理方法,这也是大数据处理比较困难的症结所在。无论是传统的数据库还是最近兴起的NoSQL数据库,在大数据存储和处理方面其实都是有非常大的局限性的,所以分布式计算才在大数据处理中大兴其道。Hadoop虽然提供了比较完整的一套处理模式,但相对于大数据所面临的应用需求的多样性而言,能处理的问题域也是十分有限的。
数据库和数据仓库的概念,大家google一下就可以了,接下来,我们看看它们之间的关系:
1)数据库和数据仓库都是数据的一种存储方式,大数据处理更多的是一种需求(问题),而云计算是一种比较综合的需求(问题)解决方案。
2)由于云计算本身的特性,天生就面临大数据处理(存储、计算等)问题,因为云计算的基本架构模式是C/S模式,其中S相对集中,而C是广泛分布。所有用户的数据和绝大部分的计算都是在S端完成的(数据量大,计算量大),加上用户也天然具有多样性(地域,文化,需求,个性化等),因此需求(也包括计算量)就非常大。
3)云计算当然会涉及到数据的存储技术,但数据库技术对于云计算来说要视具体的情况来分析:
A)对于IaaS而言,数据库技术不是必需的,也不是必备的功能;
B)对于PaaS来说,数据库功能应该是必备的功能
C)对于SaaS而言,必然会用到数据库技术(包括传统关系数据库和NoSQL数据库)。
而对于数据仓库技术,并不是云计算所必需的,但由于云数据的信息价值极大,类似一座金矿,我想云服务商是不可能放过从这些金矿中提取金子的
4)大数据首先所面临的问题就是大数据的存储问题,一般都会综合运用各种存储技术(文件存储,数据库存储),当然,你完全用文件存储或者数据库存储来解决,也是没问题的。与云计算类似,数据仓库技术不是必需的,但对于数据仓库技术对于结构化数据进行淘金还是非常有用的,当然,你不用数据仓库技术也可以,比如Hadoop模式。
在云计算和大数据处理中,最基础的技术其实是分布式计算技术。而对于构建分布式计算而言,多线程,同步,远程调用(RPC,RMI等),进程管理与通信是其基本技术点。分布式计算编程是一种综合性应用编程,不仅需要有基本的技术点,还需要一定的组织管理知识。
就目前来说,云计算和大数据处理其实都没有形成一个统一的标准和定义。希望我的回复对您有所帮助。
以上就是关于数据库一体机与大数据技术区别何在全部的内容,包括:数据库一体机与大数据技术区别何在、数据库技术与数据处理应用学什么、数据科学与大数据技术专业的培养目标 学什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)