商务智能理论与应用10-大数据技术架构_第1页
商务智能理论与应用10-大数据技术架构_第2页
商务智能理论与应用10-大数据技术架构_第3页
商务智能理论与应用10-大数据技术架构_第4页
商务智能理论与应用10-大数据技术架构_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大数据技术概述大数据技技术的概概念与现现状2011年,中国国互联网网行业持持有数据据总量达达到1.9EB(1EB字节相当当于10亿GB)2013年,我们们生成这这样规模模的信息息量只需需10分钟2015年,全球球被创建建和复制制的数据据总量将将增长到到8.2EB以上2020年,全球球电子设设备存储储的数据据将暴增增30倍,达到到35ZB从数据的的生成到到消耗,时间窗窗口非常常小,可可用于生生成决策策的时间间非常少少每秒钟发发送290万封电子子邮件每分钟向向youtube上传60个小时的的视频每天在微微信上长长传1亿条信息息淘宝网的的日成交交量是2000亿元大数据包包含大量量的半结结构化和和非结

2、构构化数据据10%的结构化化数据,存储在在数据库库中90%的非结构构化数据据,它们们与人类类信息密密切相关关非结构化化数据类类型多样样邮件、视视频、微微博位置信息息、链接接信息手机呼叫叫、网页页点击池塘捕鱼鱼(数据据库)vs.大海捕鱼鱼(大数数据)数据规模模:“池池塘”的的处理对对象通常常以MB为基本单单位,而而“大海海”则常常常以GB,甚至是是TB、PB为基本处处理单位位。数据类型型:“池塘”中数据据的种类类单一,往往仅仅仅有一一种或少少数几种种,这些些数据又又以结构构化数据据为主。“大海”中数据据的种类类繁多,数以千千计,而而这些数数据又包包含着结结构化、半结构构化以及及非结构构化的数数据

3、,并并且半结结构化和和非结构构化数据据所占份份额越来来越大。模式和数数据的关关系:传统的数数据库先先有模式式,然后后才会产产生数据据。这就就好比是是先选好好合适的的“池塘塘”,然然后才会会向其中中投放适适合在该该“池塘塘”环境境生长的的“鱼”。大数据难难以预先先确定模模式,模模式只有有在数据据出现之之后才能能确定,且模式式随着数数据量的的增长处处于不断断的演变变之中。处理对象象:传统数据据库中数数据仅作作为处理理对象。而在大大数据时时代,要要将数据据作为一一种资源源来辅助助解决其其他诸多多领域的的问题。处理工具具:捕捞“池池塘”中中的“鱼鱼”,一一种渔网网或少数数几种基基本就可可以应对对。但是

4、是在“大大海”中中,不可可能存在在一种渔渔网能够够捕获所所有的鱼鱼类处理技术术大数据时时代对数数据处理理的实时时性、有有效性提提出了更更高要求求,传统统的常规规技术手手段根本本无法应应付。大数据时时代使用用的新技技术,主主要包括括分布式式缓存、分布式式数据库库、分布布式文件件系统、各种NoSQL分布式存存储方案案、分布布式计算算系统等等。大数据处处理的基基本流程程大数据处处理的基基本流程程为数据据的抽取取和集成成、数据据分析以以及数据据解释。即在合合适工具具的辅助助下,对对广泛异异构的数数据源进进行抽取取和集成成,结果果按照一一定的标标准进行行统一存存储,并并利用合合适的数数据分析析技术对对存

5、储的的数据进进行分析析,从从中提取取有益的的知识并并利用恰恰当的方方式将结结果展现现给终端端用户。数据处理理方式流处理流处理的的处理模模式将数数据视为为流,源源源不断断的数据据组成了了数据流流。当新新的数据据到来时时就立刻刻处理并并返回所所需的结结果。批处理批处理是是指用户户将一批批作业提提交给处处理系统统后就不不再干预预,由操作系系统控制制它们自自动运行行。大数据处处理要求求分布式计计算分布式计计算是指指运行在在多个处处理单元元上的任任务合作作求解一一个规模模很大的的计算问问题这些处理理单元可可与相互互通信和和协作以以快速、高效求求解大型型复杂问问题。并行计算算可以微微秒为单单位处理理大规模

6、模数据,比如天天气预报报,股票票数据分分析等。大规模集集群并行行分布式式计算的的不足在多台机机器上对对分布式式数据进进行分析析会产生生巨大的的性能开开销,即即使采用用千兆比比特或万万兆比特特带宽的的网络,随机读读取速度度和连续续读取速速度都会会比内存存慢几个个数量级级。现在高速速局域网网技术使使得网络络读取速速度比硬硬盘读取取要快很很多。因因此,将将数据存存储在其其他节点点上比存存储在硬硬盘上的的性能要要好,而而且还可可以在多多个节点点上并行行处理数数据集分布式系系统可靠靠性也是是一个大大问题,一个拥拥有10个节点的的集群很很容易出出现节点点故障。这可以以通过在在节点间间复制数数据来解解决,对

7、对数据进进行复制制,既可可以提高高数据分分析的效效率,也也可以通通过冗余余来应对对节点故故障。当当然,数数据集越越大,对对数据副副本的管管理和维维护也越越困难。一些数据据分析软软件,比比如SAS、SPSS等因其数数据处理理能力受受限于单单机的计计算能力力,对大大数据的的处理显显得力不不从心基本的大大数据处处理技术术HadoopMapReduceHDFSNoSqlHadoop概述Hadoop是一个开开源的可可运行于于大规模模集群上上的分布布式并行行编程框框架,它它实现了了Map/Reduce计算模型型。Hadoop能够对大大量数据据进行分分布式处处理,并并且是以以一种可可靠、高高效、可可伸缩的的

8、方式进进行处理理的借助于Hadoop,程序员员可以轻轻松地编编写分布布式并行行程序,将其运运行于计计算机集集群上,完成海海量数据据的计算算。2008年4月,Hadoop打破世界界纪录,成为最最快排序序1TB数据的系系统。运运行在一一个910节点的群群集,Hadoop在209秒内排序序了1TB的数据,击败了了前一年年的297秒冠军。11月,谷歌歌在报告告中生成成,它的的MapReduce实现执行行1TB数据的排排序只用用了68秒。2009年5月,Yahoo的团队使使用Hadoop对1TB的数据进进行排序序只花了了62秒时间。Hadoop的特点Hadoop采用了分分布式存存储方式式,提高高了读写写

9、速度,并扩大大了存储储容量。采用MapReduce来整合分分布式文文件系统统上的数数据,可可保证分分析和处处理数据据的高效效。得Hadoop可以部署署在低廉廉的计算算机集群群中,同同时不限限于某个个操作系系统。Hadoop框架应用用举例求20个数据中中的最大大数,一一般的编编程方式式把第一一个数据据开始往往后面一一个个的的比较,总是把把更大的的数据记记录下来来,这样样顺序比比较下去去,最后后就得到到了最大大的数据据;但是Hadoop的做法是是把这20个数据分分成4组,每组组5个数据,每组采采用Map函数求出出最大值值,然后后后每组组把求得得的各自自最大值值交给Reduce,由Reduce得出最

10、后后的最大大值;Hadoop框架的体体系结构构HDFS和MapReduce是Hadoop的两大核核心。HDFS在集群上上实现了了分布式式文件系系统,MapReduce在集群上上实现了了分布式式计算和和任务处处理。HDFS在MapReduce任务处理理过程中中提供了了文件操操作和存存储等支支持,MapReduce在HDFS的基础上上实现了了任务的的分发、跟踪、执行等等工作,并收集集结果,二者相相互作用用,完成成了Hadoop分布式集集群的主主要任务务。Hadoop的优势数据存储储在哪一一台计算算机上,就由这这台计算算机进行行这部分分数据的的计算,这样可可以减少少数据在在网络上上的传输输,降低低对

11、网络络带宽的的需求。在Hadoop这样的基基于集群群的分布布式并行行系统中中,计算算结点可可以很方方便地扩扩充,而而因它所所能够提提供的计计算能力力近乎是是无限的的,但是是由是数数据需要要在不同同的计算算机之间间流动,故网络络带宽变变成了瓶瓶颈,是是非常宝宝贵的,“本地地计算”是最有有效的一一种节约约网络带带宽的手手段,业业界把这这形容为为“移动动计算比比移动数数据更经经济”。MapReduce概述MapReduce是一个简简单易用用的软件件框架,基于它它可以将将任务分分发到由由上千台台商用机机器组成成的集群群上,并并以一种种高容错错的方式式并行处处理大量量的数据据集,实实现Hadoop的并行

12、任任务处理理功能。MapReduce是一种并并行编程程模式,这种模模式使得得软件开开发者可可以轻松松地编写写出分布布式并行行程序。MapReduce包括Map(映射)和Reduce(化简)两个阶阶段,可可以进行行海量数数据分割割、任务务分解与与结果汇汇总,从从而完成成海量数数据的并并行处理理。适合用MapReduce来处理的的数据集集,需要要可以分分解成许许多小的的数据集集,而且且每一个个小数据据集都可可以完全全并行地地进行处处理。MapReduce极大地方方便了编编程人员员在不会会分布式式并行编编程的情情况下,将自己己的程序序运行在在分布式式系统上上。MapReduce的优点MapReduc

13、e将传统的的查询、分解及及数据分分析进行行分布式式处理,将处理理任务分分配到不不同的处处理节点点,因此此具有更更强的并并行处理理能力。作为一一个简化化的并行行处理的的编程模模型,MapReduce还降低了了开发并并行应用用的门槛槛。MapReduce工作原理理MapReduce的工作原原理其实实是先分分后合的的数据处处理方式式。Map即“分解”,把海量量数据分分割成了了若干部部分,分分给多台台处理器器并行处处理;Reduce即“合并”,把各台台处理器器处理后后的结果果进行汇汇总操作作以得到到最终结结果。利用一个个输入的的key/value对集合来来产生一一个输出出的key/value对集合。M

14、apReduce用两个函函数来表表达这个个计算:Map和Reduce。用户自定定义的map函数接收收一个输输入的key/value对,然后后产生一一个中间间key/value对的集合合。MapReduce把所有具具有相同同key值的value集合在一一起,然然后传递递给reduce函数。用用户自定定义的reduce函数接收收key和相关的的value集合。reduce函数合并并这些value值,形成成一个较较小的value集合。用户只需需要编写写map和reduce函数,而而如何分分配调用用资源,则交给给Hadoop去做。如果采用用MapReduce来统计不不同几何何形状的的数量,它会先先把任

15、务务分配到到两个节节点,由由两个节节点分别别并行统统计,然然后再把把它们的的结果汇汇总,得得到最终终的计算算结果。一个Map-Reduce作业(job)通常会会把输入入的数据据集切分分为若干干独立的的数据块块,由map任务(task)以完全全并行的的方式处处理它们们。框架架会对map的输出先先进行排排序,然然后把结结果输入入给reduce任务。通通常作业业的输入入和输出出都会被被存储在在文件系系统中。整个框框架负责责任务的的调度和和监控,以及重重新执行行已经失失败的任任务。Map-Reduce框架和分分布式文文件系统统是运行行在一组组相同的的节点上上的,即即计算节节点和存存储节点点通常在在一起

16、。这种配配置允许许框架在在那些已已经存好好数据的的节点上上高效地地调度任任务,这这可以使使整个集集群的网网络带宽宽被非常常高效地地利用。Map-Reduce框架由单单独一个个masterJobTracker和每个集集群节点点一个slaveTaskTracker共同组成成。这个个master负责调度度构成一一个作业业的所有有任务,这些任任务分布布在不同同的slave上,master监控它们们的执行行,重新新执行已已经失败败的任务务。而slave仅负责执执行由master指派的任任务。MapReduce工作流程程MapReduce来处理大大数据集集的过程程,就是是将大数数据集分分解为成成百上千千的

17、小数数据集,每个数数据集分分别由集集群中的的一个结结点(可以一台台普通的的计算机机)进行处理理并生成成中间结结果,然然后这些些中间结结果又由由大量的的结点进进行合并并,形成成最终结结果。Inputsplitshuffleoutputmap任务处理理:1.读取输入入文件内内容,解析成键键值对(key/value).对输入文文件的每每一行,解析成键键值对(key/value).每一个键键值对调调用一次次map函数2.写自己的的逻辑,对输入的的键值对对(key/value)处理,转换成新新的键值值对(key/value)输出3.对输出的的键值对对(key/value)进行分区区(partition)

18、4.对不同分分区的数数据,按照key进行排序序,分组.相同的key/value放到一个个集合中中(shuffle)5.分组后的的数据进进行规约约(combiner,可选择的的)MapReducereduce任务处理理:1.对多个map任务的输输出,按照不同同的分区区,通过网络络copy到不同的的reduce节点.2.对多个map任务的输输出进行行合并,排序.写reduce函数自己己的逻辑辑,对输入的的key/value处理,转换成新新的key/value输出.3.把reduce的输出保保存到文文件中(写入到hdfs中).ShuffleShuffle是将Map输出进行行进一步步整理并并交给red

19、uce的过程在MapReduce流程中,为了让让reduce可以并行行处理map结果,必必须对map的输出进进行一定定的排序序和分割割,然后后再交给给对应的的reduce。这个将将map输出进行行进一步步整理并并交给reduce的过程,就称为为shuffleShuffle过程是MapReduce工作流程程的核心心,也被被称为奇奇迹发生生的地方方。要想想理解MapReduce,Shuffle是必须要要了解的的Shuffle过程包含含在map和reduce两端中,描述着着数据从从maptask输出到reducetask输入的这这段过程程CombinersCombiners的作用:每一个map可能会

20、产产生大量量的输出出,combiner的作用就就是在map端对输出出先做一一次合并并,以减减少传输输到reducer的数据量量,1)combiner最基本是是实现本本地key的聚合,对map输出的key排序,value进行迭代代。如下下所示:map: (K1,V1) list(K2,V2)combine:(K2, list(V2) list(K2, V2)reduce: (K2,list(V2) list(K3,V3)2)combiner还具有类类似本地地的reduce功能.例如hadoop自带的wordcount的例子和和找出value的最大值值的程序序,combiner和reduce完全一

21、致致。如下下所示:map: (K1,V1) list(K2,V2)combine:(K2, list(V2) list(K3, V3)reduce: (K3,list(V3) list(K4,V4)3)如果不不用combiner,那么,所所有的结结果都是是reduce完成,效效率会相相对低下下。使用用combiner,先完成的的map会在本地地聚合,提升速速度。假设有两两个map第一个map的输出为为:(1950,0),(1950,20),(1950,10)第二个map输出为:(1950,25),(1950,15),(1950,30)Reduce函数被调调用是,输入如如下:(1950,0,20

22、,10,25,15,30)因为30是最大的的值,所所以输出出如下:(1950,30)如果我们们使用combiner,那么reduce调用的时时候传入入的数据据如下:(1950,20,30)-(1950,30)用表达式式表示为为:Max(0,20,10,25,15,30)=max(max(0,20,10),max(25,15,30)=max(20,30)=30Combiners简化了reduce端的工作作量PatitionerPartitioner主要作用用就是将将map的结果发发送到相相应的Reduce。这就对对partition有两个要要求:1)均衡负负载,尽尽量的将将工作均均匀的分分配给不

23、不同的reduce。2)效率,分配速速度一定定要快。MapReduce示例:单单词计数数为了统计计论文中中出现次次数最多多的几个个单词,可以采采用以下下几种方方法:写一个小小程序,把所有有论文按按顺序遍遍历一遍遍,统计计每一个个遇到的的单词的的出现次次数,最最后就可可以知道道哪几个个单词最最热门了了(适合合于数据据集比较较小,且且非常有有效的、实现最最简单)。(单机计算算)写一个多多线程程程序,并并发遍历历论文。理论上上是可以以高度并并发的,因为统统计一个个文件时时不会影影响统计计另一个个文件。使用多多核机器器时比方方法一高高效。但但是,写写一个多多线程程程序要复复杂得多多。(并行计算算)把作

24、业交交给多个个计算机机去完成成。可以以使用方方法一的的程序,部署到到N台机器上上去,然然后把论论文集分分成N份,一台台机器跑跑一个作作业。这这个方法法跑得足足够快,但是部部署起来来很麻烦烦,既要要人工把把论文集集分开,复制到到各台机机器,还还把N个运行结结果进行行整合。(并发计算算)4)使用MapReduce,同并发发计算类类似,但但如何拆拆分文件件集,如如何复制制分发程程序,如如何整合合结果这这些都是是框架定定义好的的。我们们只要定定义好这这个任务务(用户户程序),其它它都交给给MapReduce。处理过程程分析每个拿到到原始数数据的机机器只要要将输入入数据切切分成单单词就可可以了,所以可可

25、以在map阶段完成成单词切切分的任任务。相同单词词的频数数计算也也可以并并行化处处理,可可以将相相同的单单词交给给一台机机器来计计算频数数,然后后输出最最终结果果,这个个过程可可以交给给reduce阶段完成成。至于将中中间结果果根据不不同单词词分组再再发送给给reduce机器,这这正好是是MapReduce过程中的的shuffle能够完成成的。单词统计计的处理理过程1.Map阶段完成成由输入入数据到到单词切切分的工工作。2.Shuffle阶段完成成相同单单词的聚聚集和分分发工作作(这个个过程是是MapReduce的默认过过程,不不用具体体配置)。3.Reduce阶段完成成接收所所有单词词并计算

26、算其频数数的工作作。MapReduce示例:单单词计数数案例:单单词记数数问题(WordCount)给定一个个巨大的的文本(如1TB),如何何计算单单词出现现的数目目?MapReduce示例:单单词计数数使用MapReduce求解该问问题定义Map和Reduce函数MapReduce示例:单单词计数数使用MapReduce求解该问问题Step 1:自动对文文本进行行分割,形成初初始的对MapReduce示例:单单词计数数使用MapReduce求解该问问题Step 2:在分割之之后的每每一对进行用户户定义的的Map进行处理理,再生生成新的的对MapReduce示例:单单词计数数使用MapRedu

27、ce求解该问问题Step 3:对输出的的结果集集归拢、排序(系统自动动完成)shuffleMapReduce示例:单单词计数数使用MapReduce求解该问问题Step 4:通过Reduce操作生成成最后结结果流程总揽揽Map的数目通通常是由由输入数数据的大大小决定定的,一一般就是是所有输输入文件件的总块块(block)数。Map正常的并并行规模模大致是是每个节节点(node)大约10到100个map,对于CPU消耗较小小的map任务可以以设到300个左右。由于每每个任务务初始化化需要一一定的时时间,因因此,比比较合理理的情况况是map执行的时时间至少少超过1分钟。这样,如如果你输输入10TB

28、的数据,每个块块(block)的大小小是128MB,你将需需要大约约82,000个map来完成任任务我们使用用天气的的数据作作为我们们的示例例,通常常气象站站几乎在在每个小小时,很很多地点点都在手手机我们们的气温温信息,并采用用日志的的方式记记录下来来,所以以用MapReduce来分析这这些数据据是在合合适不过过了。我们使用用天气的的数据作作为我们们的示例例,通常常气象站站几乎在在每个小小时,很很多地点点都在手手机我们们的气温温信息,并采用用日志的的方式记记录下来来,所以以用MapReduce来分析这这些数据据是在合合适不过过了。数据文件件按照日日期和气气象站的的地点组组织,目目录从1901到

29、2001年按照年年来分目目录,其其中每个个气象站站的数据据按照gzip压缩方式式打包到到一个文文件中,下面这这个例子子列出累累1990年的那个个目录信信息。% ls raw/1990 |head,010010-99999-1990.gz010014-99999-1990.gz,010015-99999-1990.gz010016-99999-1990.gz,10017-99999-1990.gz010030-99999-1990.gz,010040-99999-1990.gz010080-99999-1990.gz,10100-99999-1990.gz010150-99999-1990.gz

30、,目前为止止,已经经有成千千上万个个气象站站,全部部的数据据将由一一些相对对来说比比较小的的文件组组成,相相对来说说处理小小文件比比较容易易。所以以这就是是为什么么需要按按照年份份拆分成成小文件件。解析后的的年份与与温度(0,11990999991950051507004.9999999N9+00001+9999.)(106,11990999991950051512004.9999999N9+00221+9999.)(212,11990999991950051518004.9999999N9-00111+99.)(318,2650999991949032412004.0500001N9+011

31、11+99.)(424,12650999991949032418004.0500001N9+00781+99.)Map函数仅仅仅从中解解析出年年份和温温度(数数据中加加粗的部部分),然后将将他们输输出Key,value(1950,0)(1950,22)(1950,11)(1949,111)(1949,78)从map返回的output,在被送送往reduce函数之前前会被进进行预处处理。把把key-value对进行排排序和分分组。所所以接下下来在reduce函数里看看到的将将是如下下格式的的输入:(1949,111,78)(1950,0, 22,11)每年的温温度数据据在后面面都可以以通过后后面

32、的列列表读取取,所有有的reduce函数需要要做的就就是遍历历他然后后找出最最大的数数据即可可,最后后结果如如下。(1949,111)(1950,22)最后输出出这种结结果:每每年的最最高气温温。GoogleMapReduce执行流程程文件存储储位置源文件:GFSMap处理结果果:本地地存储Reduce处理结果果:GFS日志:GFSMapReduce的用途MapReduce适合进行行数据分分析、日日志分析析、商业业智能分分析、客客户营销销、大规规模索引引等业务务,并具具有非常常明显的的效果。通过结合合MapReduce技术进行行实时分分析,某某家电公公司的信信用计算算时间从从33小时缩短短到8

33、秒,而MKI的基因分分析时间间从数天天缩短到到20分钟。NoSQLNoSQL(NoSQL= NotOnly SQL),意即反反SQL运动,指指的是非非关系型型的数据据库。随着互联联网web2.0网站的兴兴起,传传统的关关系数据据库在应应付web2.0网站,特特别是超超大规模模和高并并发的SNS类型的web2.0纯动态网网站已经经显得力力不从心心,暴露露了很多多难以克克服的问问题,而而非关系系型的数数据库则则由于其其本身的的特点得得到了非非常迅速速的发展展关系数据据库暴露露的问题题High performance -对数据库库高并发发读写的的需求web2.0网站要根根据用户户个性化化信息来来实时

34、生生成动态态页面和和提供动动态信息息,所以以基本上上无法使使用动态态页面静静态化技技术,因因此数据据库并发发负载非非常高,往往要要达到每每秒上万万次读写写请求。关系数据据库应付付上万次次SQL查询还勉勉强顶得得住,但但是应付付上万次次SQL写数据请请求,硬硬盘IO就已经无无法承受受了。其实对于于普通的的BBS网站,往往往也存存在对高高并发写写请求的的需求。关系数据据库暴露露的问题题Huge Storage-对海量数数据的高高效率存存储和访访问的需需求对于大型型的SNS网站,每每天用户户产生海海量的用用户动态态,以国外的的Friendfeed为例,一一个月就就达到了了2.5亿条用户户动态,对于关

35、系系数据库库来说,在一张张2.5亿条记录录的表里里面进行行SQL查询,效效率是极极其低下下乃至不不可忍受受的。再例如大大型web网站的用用户登录录系统,例如腾腾讯,盛盛大,动动辄数以以亿计的的帐号,关系数数据库也也很难应应付。关系数据据库暴露露的问题题High Scalability & HighAvailability-对数据库库的高可可扩展性性和高可可用性的的需求在基于web的架构当当中,数数据库是是最难进进行横向向扩展的的,当一一个应用用系统的的用户量量和访问问量与日日俱增的的时候,你的数数据库却却没有办办法像webserver和appserver那样简单单的通过过添加更更多的硬硬件和服

36、服务节点点来扩展展性能和和负载能能力。对于很多多需要提提供24小时不间间断服务务的网站站来说,对数据据库系统统进行升升级和扩扩展是非非常痛苦苦的事情情,往往往需要停停机维护护和数据据迁移,为什么么数据库库不能通通过不断断的添加加服务器器节点来来实现扩扩展呢?关系数据据库无用用武之地地在上面提提到的“三高”需求面前前,关系系数据库库遇到了了难以克克服的障障碍,而而对于web2.0网站来说说,关系系数据库库的很多多主要特特性却往往往无用用武之地地,如数据库事事务一致致性需求求数据库的的写实时时性和读读实时性性需求对复杂的的SQL查询,特特别是多多表关联联查询的的需求关系数据据库无用用武之地地数据库

37、事事务一致致性需求求很多web实时系统统并不要要求严格格的数据据库事务务,对读读一致性性的要求求很低,有些场场合对写写一致性性要求也也不高。因此数据据库事务务管理成成了数据据库高负负载下一一个沉重重的负担担。关系数据据库无用用武之地地数据库的的写实时时性和读读实时性性需求对关系数数据库来来说,插插入一条条数据之之后立刻刻查询,是肯定定可以读读出来这这条数据据的,但但是对于于很多web应用来说说,并不不要求这这么高的的实时性性。关系数据据库无用用武之地地对复杂的的SQL查询,特特别是多多表关联联查询的的需求任何大数数据量的的web系统,都都非常忌忌讳多个个大表的的关联查查询,以以及复杂杂的数据据

38、分析类类型的复复杂SQL报表查询询,特别是SNS类型的网网站,从从需求以以及产品品设计角角度,就就避免了了这种情情况的产产生。往往更多多的只是是单表的的主键查查询,以以及单表表的简单单条件分分页查询询,SQL的功能被被极大的的弱化了了NoSQLNoSQL是非关系系型数据据存储的的广义定定义。它它打破了了长久以以来关系系型数据据库与ACID理论大一统的局面。NoSQL数据存储储不需要要固定的的表结构构,通常常也不存存在连接接操作。在大数据据存取上上具备关关系型数数据库无无法比拟拟的性能能优势。该术语在在2009年初得到到了广泛泛认同NoSQL与关系型型数据库库设计理理念比较较关系型数数据库中中的

39、表都都是存储储一些格格式化的的数据结结构,每每个元组组字段的的组成都都一样,即使不不是每个个元组都都需要所所有的字字段,但但数据库库会为每每个元组组分配所所有的字字段,这这样的结结构可以以便于表表与表之之间进行行连接等等操作,但从另另一个角角度来说说它也是是关系型型数据库库性能瓶瓶颈的一一个因素素。而非关系系型数据据库以键键值对存存储,它它的结构构不固定定,每一一个元组组可以有有不一样样的字段段,每个个元组可可以根据据需要增增加一些些自己的的键值对对,这样样就不会会局限于于固定的的结构,可以减减少一些些时间和和空间的的开销。NoSQL实例Google的BigTable与Amazon的Dynamo是非常成成功的商商业NoSQL实现。一些开源源的NoSQL体系,如如Facebook的Cassandra,Apache的HBase,也得到到了广泛泛

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论