老李分享:大数据,数据库,数据仓库之间是什么关系
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。
首先简单的看一下云计算与大数据的概念.
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等),进程管理与通信是其基本技术点。分布式计算编程是一种综合性应用编程,不仅需要有基本的技术点,还需要一定的组织管理知识。
就目前来说,云计算和大数据处理其实都没有形成一个统一的标准和定义,以上仅仅是我在工作和学习的过程中,对于这些东西的理解,也希望与大家一起来探讨这类问题。当然,也希望我的回复对你们有所帮助。