《大数据与云计算(论文)24.docx》由会员分享,可在线阅读,更多相关《大数据与云计算(论文)24.docx(24页珍藏版)》请在三一办公上搜索。
1、大数据与云计算摘要:近年来,大数据和云计算已经成为社会各界关注的热点话题。秉承“按需服务”理念的“云计算(Cloud computing)”正高速发展,“数据即资源”的“大数据(big data)”时代已经来临1。大数据利用对数据处理的实时性、有效性提出了更高要求,需要根据大数据特点对传统的常规数据处理技术进行技术变革,形成适用于大数据收集、存储、管理、处理、分析、共享和可视化的技术。如何更好地管理和利用大数据已经成为普遍关注的话题。大数据的规模效应给数据存储、管理以及数据分析带来了极大的挑战,数据管理方式上的变革正在酝酿和发生。本文所提到的大数据包含着云计算,因为云计算是支撑大数据的平台。关
2、键词: 大数据 云计算 数据分析 数据挖掘引言在学术界,大数据这一概念的提出相对较早。2008 年 9 月,自然杂志就推出了名为“大数据”( big data) 的专刊。2011 年5 月,麦肯锡全球研究院发布了名为大数据: 创新、竞争和生产力的下一个前沿(Big data: The next frontier for innovation,competition,and productivity)的研究报告,指出大数据将成为企业的核心资产,对海量数据的有效利用将成为企业在竞争中取胜的最有力武器。2012 年,联合国发布大数据政务白皮书,指出大数据可以使用极为丰富的数据资源来对社会经济进行前所
3、未有的实时分析,帮助政府更好地响应社会和经济运行。2012 年 3 月 29日,奥巴马政府发布了大数据研究与发展计划倡议,宣布启动对大数据的研发计划,标志着美国把大数据提高到国家战略层面,将“大数据研究”上升为国家意志,对未来的科技与经济发展必将带来深远影响。大数据应用正在风靡全球,大数据精准营销成为企业掌舵者的口头禅,那么大数据真的是无懈可击吗?答案显然是否定的。随着互联网和移动设备的普及,大数据已经在我们的生活中无处不在,而有关大数据与隐私的问题也日益受到关注。毫无疑问,未来可以获得的个人数据量越多,其中的信息量就越大。只要拥有了足够多的数据,我们甚至可能发现有关于一个人的未来信息。另外市
4、场是变化无常并且不可预期的,决策者的创造性思维并不能通过数据得以体现,相反,大数据在压制创新。大数据搜集到的数据的真实性也有待检验。一个人获得的数据和事实越多,预测就越有意义,人的判断也就显得愈发重要。人类、数据集和算法的协同进化将最终决定“大数据”究竟是会创造新财富,还是会摧毁旧价值。本文首先介绍了云计算的相关概念,云计算为大数据的诞生创造了物质基础,从而引出大数据的相关概念。通过大数据与云计算之间关系的比较,使读者对大数据与云计算有一个清晰的了解。文章介绍了大数据特征、作用以及对大数据分析的方法理论,对大数据的两种处理模式、处理流程以及关键技术进行了分析,提出MapReduce与关系数据库
5、融合技术,为未来大数据的工作提供了一个参考。1 云计算简介正如维克托教授所说,大数据的真实价值就像漂浮在海洋中的冰山,第一眼只能看到冰山的一角,绝大部分都隐藏在表面之下。而发掘数据价值、征服数据海洋的“动力”就是云计算2。本章首先对云计算进行相关介绍。1.1 云计算的概念由于云计算是由不同的企业和研究机构同步推进的技术,所以关于云计算的定义有很多,至今并没有一个公认的定义和标准。结合国际 20 位专家的定义,Ian Foster 定义云计算为一个由规模经济驱动的大型分布式计算模型,在该模型中,抽象的、虚拟化的、动态可伸缩的并可管理的计算资源、存储资源、平台和服务构成了一个资源池。资源池中的资源
6、通过互联网,按需提供给池外的用户。文献3归纳的云计算定义为:云是由易于使用的虚拟资源构成的一个巨大资源池,包括硬件资源、部署平台以及相应的服务。根据不同的负载,这些资源可以动态地重新配置,以达到一个最理想的资源使用状态。资源池中的资源是按需付费的,服务提供商通过服务等级协议(Service Level Agreement,SLA)保证用户的服务质量。综合其他资料,可以将云计算归纳为:云计算以虚拟化技术为核心,虚拟化技术将共享的硬件和软件资源抽象化成一个统一的资源池,通过互联网这个载体,向用户按需地提供所需的资源。其特点在于多用户共享、大数据处理与大数据存储8。云计算严格地来说并不是一种真正新的
7、技术,而是并行计算(Parallel Computing,PC)等计算模式的进一步演进。由于云计算的主要标准和方案是由企业推进的,也可以说云计算是分布式计算模型的商业实现。1.2 云计算部署及服务模式根据云计算服务对象范围的不同,云计算有四种部署模式(如图 1所示):私有云、社区云、公有云和混合云10。私有云(Private cloud):云计算出现之前,对于数据密集型或计算密集型任务,用户需要建立数据中心来提供服务,以满足其对数据存储、计算、通信能力的要求。用户需对数据中心进行运维和安全管理,对服务器上的数据和应用具有所有权和控制权。云计算出现后,这种传统的用户/服务提供者模式逐渐发展成私有
8、云模式。私有云是由一个用户组织(例如政府、军队,企业)建立运维的云计算平台,专供组织内部人员使用,不提供对外服务。私有云能够体现云计算的部分优势,例如计算资源的统一管理和动态分配。但是,私有云仍要求组织购买基础设施,建立大型数据中心,投入人力物力来维护数据中心的正常运转,由此可见,私有云系统提高了组织的IT成本,而且使云的规模受到了限制。由于私有云的开放性不高,在几种部署模式中,私有云的安全威胁相对较少。社区云(Community cloud):也称为机构云,云基础设施由多个组织共同提供,平台由多个组织共同管理。社区云被一些组织共享,为一个有共同关注点(例如,任务、安全需求、策略或政策准则等)
9、的社区或大机构提供服务。显然,社区云的规模要大于私有云,多个私有云可通过VPN连接到一起组成社区云,以满足多个私有云组织之间整合和安全共享的需求。公有云(Public cloud):公有云的基础设施由一个提供云计算服务的大型运营组织建立和运维,该运营组织一般是拥有大量计算资源的IT巨头,例如Google、微软、Amazon、百度等大型企业。这些IT公司将云计算服务以“按需购买”的方式销售给一般用户或中小企业群体。用户只需将请求提交给云计算系统,付费租用所需的资源和服务。对用户来说,不需要再投入成本建立数据中心,不需要进行系统的维护,可以专心开发核心的应用服务。目前,亚马逊的EC2、Google
10、 App Engine、Windows Azure9、百度云等都属于公有云计算系统。由于公有云的开放性较高,而用户又失去了对数据和计算的控制权,因此,与私有云相比,公有云的数据安全威胁更为突出。 混合云(Hybrid cloud):云基础设施是由两种或两种以上的云(私有云、社区云或公有云)组成,每种云仍然保持独立,但用标准的或专用的技术将它们组合起来,具有数据和应用程序的可移植性,例如混合云可以在云之间通过负载均衡技术应付突发负载。由于混合云可以是私有云和公有云的组合,某些用户选择将敏感数据和计算外包到私有云,而将非敏感数据和计算外包到公有云中,这种使用模式下,服务在不同云之间的安全无缝连接较
11、难实现。图 1 云计算的几种部署模式计算就要有计算环境,一般计算环境都有硬件的一层,资源组合调度的一层(即操作系统层),以及计算任务的应用业务的软件层。云计算与一般计算环境的三个层面类似,云计算提供的三种服务模式就对应了计算环境的三个层面。这三种服务模式分别是基础设施即服务IaaS(Infrastructure as a Service)、平台即服务PaaS(Platform as a Service)以及软件即服务SaaS(Software as a Service)。云安全联盟CSA给出了云计算平台的体系结构,涵盖了上述三种服务模式(如图 2所示)。图 2 云计算平台的体系结构IaaS将计
12、算、存储、通信资源封装为服务提供给云用户,用户相当于使用裸机,能够部署和运行任意软件。IaaS提供计算资源最常用的方式是虚拟机(Virtual Machine, VM),典型服务有Amazon的EC2等。IaaS提供存储资源的服务能够为用户提供海量数据存储和访问服务,这种存储服务也被单独称为DaaS(Data as a Service)。提供存储资源的典型服务有Amazon的S3,Google的GFS等。IaaS可以提供高速网络和通信服务,这种服务也被称为CaaS(Communication as a Service),提供网络和通信资源的典型服务有OpenFlow。PaaS是在基础设施与应用
13、之间的重要一层,PaaS将基础设施资源进行整合,为用户提供基于互联网的应用开发环境,包括应用编程接口和运行平台等,方便了应用与基础设施之间的交互。典型的PaaS平台有Google的MapReduce框架,应用执行环境Google App Engine,微软公司的Microsoft Azure Services。SaaS即云应用软件,为用户提供直接为其所用的软件。SaaS一般面向终端用户,特别是“瘦终端”。终端用户利用web浏览器,通过网络就可以获得所需的或定制的云应用服务。终端用户不具有网络、操作系统、存储等底层云基础设施的控制权,也不能控制应用的执行过程,只有非常有限的与应用相关的配置能力。
14、SaaS使用户以最小的开发和管理开销获得定制的应用。典型的SaaS服务有Salesforce公司的CRM系统,Google Docs等。1.3 云计算的特点和优势云计算作为分布式计算的优势:(1). 分布式系统的最大优势就是因为其具有比集中式系统更好的性能价格比,用户花少量的钱就能获得高效能计算。由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势。(2). 多数应用本身就是分布式的。如工业企业应用,管理部门和现场不在同一个地方的应用
15、。(3). 虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。(4). 高可靠性。冗余不仅是生物进化的必要条件,而且也是信息技术。现代分布式系统具有高度容错机制,控制核反应堆主要采用分布式来实现高可靠性。(5). 通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。(6). 可扩展性。添置一台性能更高的大
16、型机,或者添置一台性能相同的大型机的费用都比添加几台 PC 的费用高得多。(7). 高度灵活性。能够兼容不同硬件厂商的产品,兼容低配置机器和外设而获得高性能计算。云计算在存储领域的发展趋势和优势:(1). 用户不必为文件存储硬件投入任何前期的费用。(2). 主机服务提供商会维护用户文件服务器的安全和更新问题。(3). 方便的控制访问权限和文件资源管理。2 大数据概述云计算的蓬勃发展,客观上开起来大数据时代的大门。大数据是云计算的灵魂和升级方向。云计算为大数据提供的存储的空间和访问的渠道。图 3 各地云计划项目是大数据诞生的前提9微软公司全球资深副总裁、亚太研发集团主席张亚勤博士认为“云计算和大
17、数据是一个硬币的两面,云计算是大数据的IT基础,而大数据是云计算的一个杀手级应用”4。随着物联网、移动互联网、社会化网络的快速发展,企业数据的增长迅速,半结构化及非结构化的数据呈几何倍数增长。数据来源的渠道也逐渐增多,这不光包括了本地的文档、音视频,还包括了网络内容和社交媒体。大数据的时代已然来临,并给各行各业带来了根本性变革。2.1 何谓大数据人、机、物三元世界的高度融合引发了数据规模的爆炸式增长和数据模式的高度复杂化,世界已进入网络化的大数据(BigData)时代。以数据为中心的传统学科(如基因组学、蛋白组学,天体物理学和脑科学等)的研究产生了越来越多的数据。例如,用电子显微镜重建大脑中的
18、突触网络,1立方毫米大脑的图像数据就超过1PB。但近年来大数据的飙升主要还是来自日常生活,特别是互联网公司的服务。据著名咨询公司IDC的统计,2011年全球被创建和复制的数据总量为1.8ZB(10的21次方),其中75%来自于个人(主要是图片、视频和音乐),远远超过人类有史以来所有印刷材料的数据总量(200PB)。Google 公司通过大规模集群和MapReduce 软件,每月处理的数据量超过400PB;百度每天大约要处理几十 PB 数据;Facebook 注册用户超过 10亿,每月上传的照片超过10亿张,每天生成300TB 以上的日志数据;淘宝网会员超过3.7 亿,在线商品超过 8.8 亿,
19、每天交易数千万笔,产生约20TB数据。传感网和物联网的蓬勃发展是大数据的又一推动力,各个城市的视频监控每时每刻都在采集巨量的流媒体数据。工业设备的监控也是大数据的重要来源。例如,劳斯莱斯公司对全世界数以万计的飞机引擎进行实时监控,每年传送PB数量级的数据5。一般意义上,大数据是指无法在可容忍的时间内用传统IT技术和软硬件工具对其进行感知、获取、管理、处理和服务的数据集合。大数据的特点可以总结为4个V,即Volume(体量浩大)、Vari-ety(模态繁多)、Velocity(生成快速)和 Value(价值巨大但密度很低)。首先,数据集合的规模不断扩大,已从GB到TB再到PB级,甚至开始以EB和
20、ZB 来计数。IDC 的研究报告称,未来 10 年全球大数据将增加50倍,管理数据仓库的服务器数量将增加10倍。其次,大数据类型繁多,包括结构化数据、半结构化数据和非结构化数据。现代互联网应用呈现出非结构化数据大幅增长的特点,至2012 年末,非结构化数据占有比例将达到整个数据量的75%以上。同时,由于数据显性或隐性的网络化存在,使得数据之间的复杂关联无所不在。再次,大数据往往以数据流的形式动态、快速地产生,具有很强的时效性,用户只有把握好对数据流的掌控才能有效利用这些数据。另外,数据自身的状态与价值也往往随时空变化而发生演变,数据的涌现特征明显。最后,虽然数据的价值巨大,但是基于传统思维与技
21、术,人们在实际环境中往往面临信息泛滥而知识匮乏的窘态,大数据的价值利用密度低。维克托尔耶舍恩伯格明确指出,大数据时代最大的转变就是,放弃对因果关系的渴求,而取而代之关注相关关系。也就是说只要知道“是什么”,而不需要知道“为什么”。这颠覆了千百年来人类的思维惯例,对人类的认知和与世界交流的方式提出了全新的挑战。2.2 从数据库(database,DB)到大数据(bigdata,BD) 从数据库到大数据,看似只是一个简单的技术演进,但细细考究不难发现两者有着本质上的差别。大数据的出现必将颠覆传统的数据管理方式。在数据来源)数据处理方式和数据思维等方面都会对其带来革命性的变化6。如果要用简单的方式来
22、比较传统的数据库和大数据的区别,我们认为“池塘捕鱼”和“大海捕鱼”是个很好的类比。“池塘捕鱼”代表着传统数据库时代的数据管理方式,而“大海捕鱼”则对应着大数据时代的数据管理方式,“鱼”是待处理的数据。“捕鱼”环境条件的变化导致了“捕鱼”方式的根本性差异。这些差异主要体现在如下几个方面:数据规模。“池塘”和“大海”最容易发现的区别就是规模。“池塘”规模相对较小,即便是先前认为比较大的“池塘”,譬如CLDB(very large database),和“大海”XLDB(extremely large database)相比仍旧偏小。“池塘”的处理对象通常以MB为基本单位,而“大海”则常常GB,甚至
23、是TB,PB为基本处理单位。数据类型。过去的“池塘”中,数据的种类单一,往往仅仅有一种或少数几种,这些数据又以结构化数据为主。而在“大海”中数据的种类繁多“数以千计”而这些数据又包含着结构化、半结构化以及非结构化的数据”并且半结构化和非结构化数据所占份额越来越大。模式(schema)和数据的关系。传统的数据库都是先有模式,然后才会产生数据。这就好比是先选好合适的“池塘”,然后才会向其中投放适合在该“池塘”环境生长的“鱼”。而大数据时代很多情况下难以预先确定模式,模式只有在数据出现之后才能确定,且模式随着数据量的增长处于不断的演变之中。这就好比先有少量的鱼类,随着时间推移,鱼的种类和数量都在不断
24、地增长。鱼的变化会使大海的成分和环境处于不断的变化之中。处理对象。在“池塘”中捕鱼,“鱼”仅仅是其捕捞对象。而在“大海”中,“鱼”除了是捕捞对象之外,还可以通过某些“鱼”的存在来判断其他种类的“鱼”是否存在。也就是说传统数据库中数据仅作为处理对象。而在大数据时代,要将数据作为一种资源来辅助解决其他诸多领域的问题。处理工具。捕捞“池塘”中的“鱼”,一种渔网或少数几种基本就可以应对,也就是所谓的One size fits all。但是在“大海”中,不可能存在一种渔网能够捕获所有的鱼类,也就是说No size fits all。从“池塘”到“大海”不仅仅是规模的变大。传统的数据库代表着数据工程(da
25、ta engineering)的处理方式,大数据时代的数据已不仅仅只是工程处理的对象,需要采取新的数据思维来应对。图灵奖获得者、著名数据库专家Jim Gray博士观察并总结人类自古以来,在科学研究上,先后历经了实验、理论和计算3种范式。当数据量不断增长和累积到今天,传统的3种范式在科学研究,特别是一些新的研究领域已经无法很好地发挥作用,需要有一种全新的第4种范式来指导新形势下的科学研究。基于这种考虑,Jim Gray提出了一种新的数据探索型研究方式,被他自己称之为科学研究的“第4种范式”(The Fourth Paradigm)。4种范式的比较如表 1所示。第4种范式的实质就是从以计算为中心转
26、变到以数据处理为中心,也就是我们所说的数据思维。这种方式需要我们从根本上转变思维。正如前面提到的“捕鱼”,在大数据时代,数据不再仅仅是“捕捞”的对象,而应当转变成一种基础资源,用数据这种资源来协同解决其他诸多领域的问题。计算社会科学(computational social science)基于特定社会需求,在特定的社会理论指导下,收集$整理和分析数据足迹(data print),以便进行社会解释$监控$预测与规划的过程和活动。计算社会科学是一种典型的需要采用第4种范式来作指导的科学研究领域。Watts在Nature杂志上的文章“A twenty-first century science”也
27、指出,借助于社交网络和计算机分析技术,21世纪的社会科学有可能实现定量化的研究,从而成为一门真正的自然科学。表 1 科学发现的4中范式2.3 大数据与云计算的关系近几年来,云计算受到学术界和工业界的热捧,随后,大数据横空出世,更是炙手可热。那么,大数据和云计算之间是什么关系呢?从整体上看,大数据与云计算是相辅相成的大数据着眼于“数据”,关注实际业务,提供数据采集分析挖掘,看重的是信息积淀,即数据存储能力。云计算着眼于“计算”,关注IT解决方案,提供IT基础架构,看重的是计算能力,即数据处理能力。没有大数据的信息积淀,则云计算的计算能力再强大,也难以找到用武之地;没有云计算的处理能力,则大数据的
28、信息积淀再丰富,也终究只是镜花水月。从技术上看,大数据根植于云计算云计算关键技术中的海量数据存储技术、海量数据管理技术、MapReduce编程模型,都是大数据技术的基础(如图 4所示)。图 4 大数据的关键技术大数据技术与云计算有相同,也有差异(如图 5所示)。图 5 大数据与云计算的异同云计算与大数据的不同之处在于应用的不同,主要在两个方面:第一,在概念上两者有所不同,云计算改变了 IT,而大数据则改变了业务。然而大数据必须有云作为基础架构,才能得以顺畅运营。 第二,大数据和云计算的目标受众不同,云计算是卖给 CIO 的技术和产品,是一个进阶的 IT解决方案。而大数据是卖给 CEO、卖给业务
29、层的产品,大数据的决策者是业务层。由于他们能直接感受到来自市场竞争的压力,必须在业务上以更有竞争力的方式战胜对手。大数据技术与云计算相结合会带来什么?如图 6所示图 6 大数据与云计算结合3 大数据的特征、作用及分析3.1 大数据的特征一是数据体量巨大。百度资料表明,其新首页导航每天需要提供的数据超过1.5PB(1PB=1024TB),这些数据如果打印出来将超过5千亿张A4纸。有资料证实,到目前为止,人类生产的所有印刷材料的数据量仅为200PB。二是数据类型多样。现在的数据类型不仅是文本形式,更多的是图片、视频、音频、地理位置信息等多类型的数据,个性化数据占绝对多数。三是处理速度快。数据处理遵
30、循“1秒定律”,可从各种类型的数据中快速获得高价值的信息。四是价值密度低。以视频为例,一小时的视频,在不间断的监控过程中,可能有用的数据仅仅只有一两秒。3.2 大数据的作用第一,对大数据的处理分析正成为新一代信息技术融合应用的结点。移动互联网、物联网、社交网络、数字家庭、电子商务等是新一代信息技术的应用形态,这些应用不断产生大数据。云计算为这些海量、多样化的大数据提供存储和运算平台。通过对不同来源数据的管理、处理、分析与优化,将结果反馈到上述应用中,将创造出巨大的经济和社会价值。大数据具有催生社会变革的能量。但释放这种能量,需要严谨的数据治理、富有洞见的数据分析和激发管理创新的环境(Ramay
31、ya Krishnan,卡内基梅隆大学海因兹学院院长)。第二,大数据是信息产业持续高速增长的新引擎。面向大数据市场的新技术、新产品、新服务、新业态会不断涌现。在硬件与集成设备领域,大数据将对芯片、存储产业产生重要影响,还将催生一体化数据存储处理服务器、内存计算等市场。在软件与服务领域,大数据将引发数据快速处理分析、数据挖掘技术和软件产品的发展。第三,大数据利用将成为提高核心竞争力的关键因素。各行各业的决策正在从“业务驱动”转变“数据驱动”。对大数据的分析可以使零售商实时掌握市场动态并迅速做出应对;可以为商家制定更加精准有效的营销策略提供决策支持;可以帮助企业为消费者提供更加及时和个性化的服务;
32、在医疗领域,可提高诊断准确性和药物有效性;在公共事业领域,大数据也开始发挥促进经济发展、维护社会稳定等方面的重要作用。第四,大数据时代科学研究的方法手段将发生重大改变。例如,抽样调查是社会科学的基本研究方法。在大数据时代,可通过实时监测、跟踪研究对象在互联网上产生的海量行为数据,进行挖掘分析,揭示出规律性的东西,提出研究结论和对策。3.3 大数据的分析从所周知,大数据已经不简简单单是数据大的事实了,而最重要的现实是对大数据进行分析,只有通过分析才能获取很多智能的,深入的,有价值的信息。那么越来越多的应用涉及到大数据,而这些大数据的属性,包括数量,速度,多样性等等都是呈现了大数据不断增长的复杂性
33、,所以大数据的分析方法在大数据领域就显得尤为重要,可以说是决定最终信息是否有价值的决定性因素。基于如此的认识,大数据分析普遍存在的方法理论有哪些呢?1. 可视化分析。大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。2. 数据挖掘算法。大数据分析的理论核心就是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格式才能更加科学的呈现出数据本身具备的特点,也正是因为这些被全世界统计学家所公认的各种统计方法(可以称之为真理)才能深入数据内部,挖
34、掘出公认的价值。另外一个方面也是因为有这些数据挖掘的算法才能更快速的处理大数据,如果一个算法得花上好几年才能得出结论,那大数据的价值也就无从说起了。3. 预测性分析。大数据分析最终要的应用领域之一就是预测性分析,从大数据中挖掘出特点,通过科学的建立模型,之后便可以通过模型带入新的数据,从而预测未来的数据。4. 语义引擎。非结构化数据的多元化给数据分析带来新的挑战,我们需要一套工具系统的去分析,提炼数据。语义引擎需要设计到有足够的人工智能以足以从数据中主动地提取信息。5. 数据质量和数据管理。大数据分析离不开数据质量和数据管理,高质量的数据和有效的数据管理,无论是在学术研究还是在商业应用领域,都
35、能够保证分析结果的真实和有价值。大数据分析的基础就是以上五个方面,当然更加深入大数据分析的话,还有很多很多更加有特点的、更加深入的、更加专业的大数据分析方法。4 大数据处理框架4.1 大数据处理模式大数据的应用类型有很多,主要的处理模式可以分为流处理(stream process)和批处理(batch processing)两 种。批处理是先存储后处理(store-then-process),而流处理则是直接处理(straight-through processing)7。流处理流处理的基本理念是数据的价值会随着时间的流逝而不断减少,因此尽可能快地对最新的数据作出分析并给出结果是所有流数据处理
36、模式的共同目标。需要采用流数据处理的大数据应用场景主要有网页点击数的实时统计、传感器网络、金融中的高频交易等。流处理的处理模式将数据视为流,源源不断的数据组成了数据流。当新的数据到来时就立刻处理并返回所需的结果。图 7是流处理中基本的数据流模型:图 7 基本的数据流模型数据的实时处理是一个很有挑战性的工作,数据流本身具有持续达到%速度快且规模巨大等特点,因此通常不会对所有的数据进行永久化存储,而且数据环境处在不断的变化之中,系统很难准确掌握整个数据的全貌。由于响应时间的要求,流处理的过程基本在内存中完成,其处理方式更多地依赖于在内存中设计巧妙的概要数据结构,内存容量是限制流处理模型的一个主要瓶
37、颈。以PCM(相变存储器)为代表的储存级内存设备的出现或许可以使内存未来不再成为流处理模型的制约。数据流的理论及技术研究已经有十几年的历史,目前仍旧是研究热点。与此同时很多实际系统也已开发和得到广泛的应用,比较代表性的开源系统如Twitter的Storm、Yahoo的S4以及Linkedin的Kafka等。批处理Google公司在2004年提出的MapReduce编程模型是最具代表性的批处理模式。一个完整的MapReduce过程如所示。图 8 MapReduce执行流程图MapReduce模型首先将用户的原始数据源进行分块,然后分别交给不同的Map任务区处理。Map任务从输入中解析出链/值(K
38、ey/Value)对集合。然后对这些集合执行用户自行定义的Map函数得到中间结果,并将该结果写入本地硬盘。Reduce任务从硬盘上读取数据之后会根据Key值进行排序,将具有相同Key值的组织在一起。最后用户自定义的Reduce函数会作用于这些排好序的结果并输出最终结果。4.2 大数据处理的基本流程大数据的数据来源广泛!应用需求和数据类型都不尽相同!但是最基本的处理流程一致。海量Web数据的处理是一类非常典型的大数据应用,从中可以归纳出大数据处理的最基本流程。图 9 大数据处理基本流程整个大数据的处理流程可以定义为在合适工具的辅助下,对广泛异构的数据源进行抽取和集成,结果按照一定的标准统一存储。
39、利用合适的数据分析技术对存储的数据进行分析,从中提取有益的知识并利用恰当的方式将结果展现给终端用户。具体来说可以分为数据抽取与集成、数据分析以及数据解释。数据抽取与集成大数据的一个重要特点就是多样性,这就意味着数据来源极其广泛,数据类型极为繁杂,这种复杂的数据环境给大数据的处理带来极大的挑战。要想处理大数据,首先必须对所需数据源的数据进行抽取和集成,从中提取出关系和实体,经过关联和聚合之后采用统一定义的结构来存储这些数据。在数据集成和提取时需要对数据进行清洗,保证数据质量及可信性。同时还要特别注意前面提及的大数据时代模式和数据的关系,大数据时代的数据往往是先有数据再有模式,且模式是在不断的动态
40、演化之中的。数据抽取和集成技术不是一项全新的技术,传统数据库领域已对此问题有了比较成熟的研究。随着新的数据源的涌现数据集成方法也在不断的发展之中。从数据集成模型来看,现有的数据抽取与集成方式可以大致分为以下4种类型:基于物化或ETL方法的引擎、基于联邦数据库或中间件方法的引擎、基于数据流方法的引擎、及基于搜索引擎的方法数据分析数据分析是整个大数据处理流程的核心,因为大数据的价值产生于分析过程。从异构数据源抽取和集成的数据构成了数据分析的原始数据。根据不同应用的需求可以从这些数据中选择全部或部分进行分析。传统的分析技术如数据挖掘、机器学习、统计分析等在大数据时代需要作出调整。大数据分析已被广泛应
41、用于诸多领域,典型的有推荐系统、商业智能、决策支持等。数据解释数据分析是大数据处理的核心,但是用户往往更关心结果的展示。如果分析的结果正确但是没有采用适当的解释方法,则所得到的结果很可能让用户难以理解,极端情况下甚至会误导用户。数据解释的方法很多,比较传统的就是以文本形式输出结果或者直接在电脑终端上显示结果。这种方法在面对小数据量时是一种很好的选择。但是大数据时代的数据分析结果往往也是海量的,同时结果之间的关联关系极其复杂,采用传统的解释方法基本不可行。可以考虑引入可视化技术、让用户能够在一定程度上了解和参与具体的分析过程这两个方面提升数据解释能力。4.3 关键技术分析大数据价值的完整体现需要
42、多种技术的协同。文件系统提供最底层存储能力的支持。为了便于数据管理,需要在文件系统之上建立数据库系统。通过索引等的构建,对外提供高效的数据查询等常用功能。最终通过数据分析技术从数据库中的大数据提取出有益的知识。云计算:大数据的基础平台与支撑技术如果将各种大数据的应用比作一辆辆“汽车”,支撑起这些“汽车”运行的“高速公路”就是云计算。正是云计算技术在数据存储、管理与分析等方面的支撑,才使得大数据有用武之地。在所有的“高速公路”中,Google无疑是技术最为先进的一个。需求推动创新,面对海量的Web数据,Google于2006年首先提出了云计算的概念。支撑Google内部各种大数据应用的正是其自行
43、研发的一系列云计算技术和工具。难能可贵的是Google并未将这些技术完全封闭,而是以论文的形式逐步公开其实现。正是这些公开的论文,使得以GFS,MapReduce,Bigtable为代表的一系列大数据处理技术被广泛了解并得到应用,同时还催生出以Hadoop为代表的一系列云计算开源工具。云计算所涉及到的技术很多,但是通过Google云计算技术的介绍能够快速、完整地把握云计算技术的核心和精髓。根据Google已公开的论文及相关资料,结合大数据处理的需求,我们对Google的技术眼花进行了整理,如所示:图 10 Google技术演化图大数据处理工具关系数据库在很长的时间里成为数据管理的最佳选择,但是
44、在大数据时代,数据管理、分析等的需求多样化使得关系数据库在很多场景不再适用。本节将对现今主流的大数据处理工具进行一个简单的归纳和总结。Hadoop是目前最为流行的大数据处理平台。Hadoop最先是Doug Cutting模 仿GFS,MapReduce实现的一个云计算开源平台,后贡献给Apeche。Hadoop已经发展成为包括文件系统、数据库、数据处理等功能模块在内的完整生态系统11。某种程度上可以说Hadoop已经成为大数据处理工具事实上的标准。对Hadoop改进并将其应用于各种场景的大数据处理已经成为新的研究热点。主要的研究成果集中在对Hadoop平台性能的改进、高效的查询处理、索引构建和
45、使用、在Hadoop之上构建数据仓库和数据库系统的连接、数据挖掘、推荐系统等。除了Hadoop,还有很多针对大数据的处理工具。这些工具有些是完整的处理平台、有些则是专门针对特定的大数据处理应用。表 2归纳总结了现今一些主流的处理平台和工具、这些平台和工具或是已经投入商业使用、或是开源软件。在已经投入商业使用的产品中、绝大部分也是在Hadoop基础上进行功能扩展、或者提供与Hadoop的数据接口。表 2 大数据处理工具列表5 MapReduce和关系数据库技术的融合当前研究大都集中于功能或特性的移植,即从一个平台学习新的技术,到另一平台重新实现和集成,未涉及执行核心,因此也没有从根本上解决大数据
46、分析问题。鉴于此,中国人民大学高性能数据库实验室的研究小组采取了另一种思路:从数据的组织和查询的执行两个核心层次入手,融合关系数据库和MapReduce两种技术,设计高性能的可扩展的抽象数据仓库查询处理框架。该框架在支持高度可扩展的同时,又具有关系数据库的性能。两个研究方向:(1)借鉴MapReduce的思想,使OLAP查询的处理能像MapReduce一样高度可扩展(LinearDB原型);(2)利用关系数据库的技术,使MapReduce在处理OLAP查询时,逼近关系数据库的性能(Dumbo原型)8。5.1 LinearDBLinearDB原型系统没有直接采用基于连接的星型模型(雪花模型),而
47、是对其进行了改造,设计了扩展性更好的、基于扫描的无连接雪花模型JFSS(Join-Free Snowflake Schema)。该模型的设计借鉴了泛关系模型的思想,采用层次编码技术40将维表层次信息压缩进事实表,使得事实表可以独立执行维表上的谓词判断、聚集等操作,从而使连接的数据在大规模机群上实现局部性,消除了连接操作。图 11是一个星型模型和无连接雪花模型的对应示意图。在执行层次上,LinearDB吸取了MapReduce处理模式的设计思想,将数据仓库查询的处理抽象为Transform、Reduce、Merge 3个操作(TRM执行模型):(1)Transform。主节点对查询进行预处理,将
48、查询中作用于维表的操作(主要是谓词判断,group-by聚集操作等)转换为事实表上的操作;(2)Reduce。每个数据节点并行地扫描、聚集本地数据,然后将处理结果返回给主节点;(3)Merge。主节点对各个数据节点返回的结果进行合并,并执行后续的过滤、排序等操作。基于TRM执行模型,查询可以划分为众多独立的子任务在大规模机群上并行执行。执行过程中,任何失败子任务都可以在其备份节点重新执行,从而获得较好的容错能力。LinearDB的执行代价主要取决于对事实表的Reduce(主要是扫描)操作,因此,LinearDB可以获得近乎线性的大规模可扩展能力。实验表明,其性能比HadoopDB至少高出一个数量级。LinearDB的扩展能力、容错能力和高性能在于其巧妙地结合了关系数据库技术(层次编码技术、泛关系模式)和MapReduce处理模式的设计思想,由此,可以看出,结合方式的不同可以导致系统能力的巨大差异。图 11 对比:一个典型星型模型与其对应的无连接雪花模型5.2 DumboDumbo的核心思想是根据MapReduce的“过滤-聚集”的处理模式,对OLAP查询的处