《《大数据基础与应用》教学课件06大数据的存储.pptx》由会员分享,可在线阅读,更多相关《《大数据基础与应用》教学课件06大数据的存储.pptx(80页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、模块六大数据的存储CONTENTS01.必 备 知 识02.扩 展 知 识03.实训学习要点大数据的存储数据存储的概念。数据存储的方式。如何保证数据存储的可靠性?如何使用Oracle数据库?必 备 知 识1大数据存储概述大数据的存储模型大数据存储的问题大数据的存储方法大数据存储概述大数据时代,数据呈爆炸式增长。对数据存储也提出了新的要求。从存储服务的发展趋势来看,一方面,对数据的存储量的需求越来越大;另一方面,对数据的有效管理提出了更高的要求。大数据对存储设备的容量、读/写性能、可靠性、扩展性等都提出了更高的要求,需要充分考虑功能集成度、数据安全性、数据稳定性、系统可扩展性、性能及成本各方面的
2、因素。数据存储是指数据流在加工过程中产生的临时文件或需要查找的信息的存储。数据以某种格式记录在计算机内部或外部存储介质上。数据存储要命名,这种命名要反映信息特征的组成含义。数据流反映了系统中流动的数据,表现出动态数据的特征;数据存储反映系统中静止的数据,表现出静态数据的特征。大数据应用的一个主要特点是实时性或近实时性。数据通常以每年增长50%的速度快速激增,尤其是非结构化数据。随着科技的进步,有越来越多的传感器采集数据、移动设备、社交多媒体等,所以数据只可能继续增长。对大数据存储的要求也和普通存储不一样,大数据需要高性能、高吞吐率、大容量的基础存储设备。111关系型数据库2列式数据库大数据的存
3、储模型3键值存储4文档存储5图形数据库大数据主要的存储模型有关系型数据库、列式数据库、键值存储、文档存储、图形数据库五大存储模型。关系型数据库大数据的存储模型关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体及实体之间的各种联系均用关系模型来表示。关系模型是由埃德加科德于1970年首先提出的,并配合“科德十二定律”。如今,虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系型数据库中数据的检索和操作。关系模型由关系数据结构、关系操作集合、关系完整性约束三部
4、分组成。关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL、浪潮KDB等。关系型数据库把一行中的数据值串在一起存储起来,然后存储下一行的数据,以此类推。例如,表6-1所示为某学生的成绩趋势表。1关系型数据库大数据的存储模型1在该表中数据存储的方式为:数学,100,104,110,108,120,121;语文,90,92,95,85,99,100;英语,102,110,120,100,134,125;
5、综合,190,198,204,190,207,220。这种存储方式根据以行相关的存储体系架构进行空间分配,适合于小批量的数据处理,常用于OLTP(联机事务型数据处理),不适合分布式、高并发和海量数据处理。列式数据库大数据的存储模型列式数据库是以列相关的存储体系架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于大批量的数据处理,常用于联机事务型数据处理。当前常见的列式数据库有 Sybase IQ、CStore、Vertica等。表61所示数据在列式数据库中的存储方式是:数学,语文,英语,综合;100,90,102,
6、190;104,92,110,198;110,95,120,204;108,85,100,190;120,99,134,207;121,100,125,220。这种数据库因为查询需要读取的块少,使用它查询快;因为同一类型的列存储在一起,数据压缩比高,所以适合大量的数据。但是这种数据库插入更新慢,不太适合数据总是变化的小数据,不适合做含有删除和更新的实时操作。所以,它是进行DSS(决策支持系统)、BI(商业智能)的优秀选择,但是并不适合进行OLTP。1键值存储大数据的存储模型键值存储机制采用键值对形式存储,值可以是任意不定长数据。键值存储的主要思想来自于哈希表:在哈希表中有一个特定的key和一个
7、value指针,指向特定的数据。对于海量数据存储系统来说,键值存储最大的优势在于数据模型简单,易于实现,非常适合通过key对数据进行查询和修改等操作。但是,若对整个海量数据存储系统需要侧重于批量数据的查询和更新操作,则键值存储在效率上处于明显的不足。同样,键值存储不支持特别复杂逻辑的数据操作。基于键值存储的高性能海量数据存储系统的主要特点是具有极高的并发读写性能,常见的有Redis、Dynamo。1文档存储大数据的存储模型文档存储的目标是在键值存储方式(提供高性能和高伸缩性)和传统的关系数据系统(丰富的功能)之间架起一个桥梁,集两者的优势于一身。其数据主要以JSON或类JSON格式的文档来进行
8、存储,是有语义的。文档型数据库可以看作键值数据库的升级版,允许在存储的值中再嵌套键值,且文档存储模型一般可以对其值创建索引,方便上层应用,而这一点是普通键值数据库无法支持的。常见的文档存储有MongoDB、CouchDB。与关系型数据库不同的是,文档存储模型支持嵌套结构。例如,文档存储模型支持XML和JSON文档,字段的“值”又可以嵌套存储其他文档。文档存储模型也支持数组和列值键。与键值存储不同的是,文档存储关心文档的内部结构。这使得存储引擎可以直接支持二级索引,从而允许对任意字段进行高效查询。支持文档嵌套存储的能力,使查询语言具有搜索嵌套对象的能力,XQuery就是一个例子。MongoDB通
9、过支持在查询中指定JSON字段路径实现类似的功能。1图形数据库大数据的存储模型图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见的例子就是社会网络中人与人之间的关系。相对于关系型数据库中的各种关联表,图形数据库中的关系可以通过关系包含属性这一功能来提供更为丰富的关系展现方式。因此,相较于关系型数据库,图形数据库的用户在对事物进行抽象时将拥有一个额外的优势,即丰富的关系。常见的图形数据库有Neo4j、FlockDB、AllegroGrap、GraphDB、InfiniteGraph等。111容量2延迟大数据存储的问题3安全问题4成本随着大数据存储的应用,人们也总结出了大
10、数据存储需要考虑以下问题。5数据保存6灵活性7应用感知8小用户容量大数据存储的问题大数据的容量通常可达到PB级的数据规模,因此,对于海量数据存储系统需要有相应等级的扩展能力,且存储系统的扩展一定要简便,可以采用叠加的方式来完成扩容。例如,在不断电的情况下,通过增加模块或磁盘柜来增加容量。在数据容量解决方面,IBM公司的GPFS采用条带化技术,单个文件跨节点和存储系统分布,提高必发访问性能,并且支持最大数千节点的集群规模和每秒超过数百GB的I/O吞吐,而且可以在不停止服务的情况下向集群添加和删除节点,向文件系统加入和删除磁盘,修改文件系统inode数目,这种技术非常适合于大数据分析和处理。1延迟
11、大数据存储的问题大数据应用还存在实时性的问题。特别是涉及网上交易或金融类相关的高实时、高敏感的应用,大数据应用的实时性问题就突显出来了。为了满足对延迟的要求,有很多“大数据”应用环境需要较高的IOPS性能,如HPC高性能计算。此外,服务器虚拟化的普及也造成了对高IOPS的需求,正如它改变了传统IT环境一样。为了迎接这些挑战,各种模式的固态存储设备应运而生,小到简单的在服务器内部做高速缓存,大到全固态介质的可扩展存储系统等都在蓬勃发展。1安全问题某些特殊行业的应用,如政府机关、金融机构及医疗信息等都有自己的安全标准和保密性需求。虽然对于IT管理者来说这些并没有什么不同,且都是必须遵从的。但是,具
12、体的大数据分析往往需要多类数据相互参考,而过去并不会有这种数据混合访问的情况,在涉及混合访问时,除了防止信息泄露,还要考虑不同机构不同的安全体系。因此,大数据应用也催生出一些新的、需要考虑的安全性问题。成本大数据存储的问题“大”也可能意味着代价不菲。对于那些正在使用大数据环境的企业来说,成本控制是关键的问题。要想控制成本,就意味着要让每一台设备都实现更高的“效率”,同时还要减少使用那些昂贵的部件。目前,像重复数据删除等技术已经进入主存储市场,而且现在可以处理更多的数据类型,这都可以为大数据存储应用带来更多的价值,提升存储效率。在数据量不断增长的环境中,通过减少后端存储的消耗,哪怕只是降低几个百
13、分点,都能够获得明显的投资回报。此外,自动精简配置、快照和克隆技术的使用也可以提升存储的效率。对成本控制影响最大的因素是那些商业化的硬件设备。因此,很多初次进入这一领域的用户及那些应用规模最大的用户都会定制他们自己的“硬件平台”,而不是用现成的商业产品,这一举措可以用来平衡他们在业务扩展过程中的成本控制战略。为了适应这一需求,现在越来越多的存储产品都提供纯软件的形式,可以直接安装在用户已有的、通用的或现成的硬件设备上。此外,很多存储软件公司还在销售以软件产品为核心的软硬一体化装置,或者与硬件厂商结盟,推出合作型产品,如IBM公司提出的IBM云服务器等。1数据保存大数据存储的问题许多大数据应用都
14、需要保存几年甚至更久。例如,医疗信息通常是为了保证患者的生命安全和对患者长期建档,这样的数据可能需要保存几十年,而财务信息通常要保存7年。即使一些看起来不需要长期保持的数据,使用大数据存储的用户却也希望数据能够保存更长的时间,因为任何数据都是历史记录的一部分,而且数据的分析大都是基于时间段进行的。要实现长期的数据保存,就要求存储厂商开发出能够持续进行数据一致性检测的功能及其他保证长期高可用的特性。同时,还要实现数据直接在原位更新的功能需求。1灵活性大数据存储系统的基础设施规模通常都很大,因此必须经过仔细设计,才能保证存储系统的灵活性,使其能够随着应用分析软件一起扩容或扩展。在大数据存储环境中,
15、已经没有必要再做数据迁移了,因为数据会同时保存在多个部署站点。一个大型的数据存储基础设施一旦开始投入使用,就很难再调整了,因此它必须能够适应各种不同的应用类型和数据场景。应用感知大数据存储的问题最早一批使用大数据的用户已经开发出了一些针对应用的定制的基础设施,如针对政府项目开发的系统、大型互联网服务商创造的专用服务器等。在主流存储系统领域,感知技术的使用越来越普遍,它也是改善系统效率和性能的重要手段,所以,应用感知技术也应该用在大数据存储环境里。1小用户依赖大数据的不仅仅是那些大型用户群体,作为一种商业需求,小型企业未来也一定会应用到大数据。我们看到,有些存储厂商已经在开发一些小型的“大数据”
16、存储系统,主要吸引那些对成本比较敏感的用户。11在线存储2近线存储大数据的存储方法3离线存储4异地备份常见的数据存储方式有在线存储、近线存储、离线存储和异地备份四种。不同的存储方式提供不同的获取便利性、安全性和成本开销等级。在大多数场景中,四种存储都不是单独使用,经常被混合使用以达到最有效的存储策略。在线存储大数据的存储方法在线存储(online storage)有时也称为二级存储,是工作级的存储。在线存储的最大特征是存储设备和所存储的数据时刻保持“在线”状态,可以随时读取和修改,以满足前端应用服务器或数据库对数据访问的速度要求。其中最主要的在线存储是磁盘存储。早期的在线存储设备主要是服务器内
17、置硬盘,随着存储设备的发展,现在在线存储设备还包括光纤磁盘阵列或SCSI磁盘阵列等磁盘设备。这种存储方式提供最好的数据获取便利性,大磁盘阵列是其中最典型的代表之一。这种存储方式的好处是读/写非常方便、迅捷,缺点是相对较贵,且容易因为误操作或防病毒软件的误删除而使数据受到损害。1近线存储大数据的存储方法近线存储(nearline storage)是随着存储环境的细化所提出的一个概念,其外延相对较广泛,主要定位于在线存储和离线存储之间的应用,就是指将那些并不是经常用到或数据的访问量并不大的数据存放在性能较低的存储设备上,对这些的设备要求是寻址迅速、传输率高,如客户一些长期保存的不常用的文件的归档。
18、因此,近线存储对性能要求相对来说并不高,但又要求相对较好的访问性能。同时,多数情况下由于不常用的数据要占总数据量比较大的比重,这也就要求近线存储设备的容量相对较大。主要的近线存储设备主要为DVDRAM光盘塔和光盘库设备。但随着存储设备的不断发展,根据客户存储需求的不同,我们也会把低端的磁盘阵列(DS4100)或高端的磁带设备(3592)作为近线存储应用设备。近线存储设备主要有磁盘、磁带和光盘三种。磁盘包括3.5 in和各种可移动材料,如iomega zip disk和syquest disk。磁带的种类不计其数。CD的种类有可写CD(CDR)、可擦写CD(CDRW)和数字通用可擦写光盘(DVD
19、)。近线存储提供便宜、可靠、无限制的数据备份并能减少集成在线存储访问量。对于个人和小型商户来说,如果用户可以忍受一些存储或检索数据时产生的时间延迟,近线存储将是一个理想的解决方案。近线存储媒体在架时是不会被病毒感染的,因为这时的媒体在物理上是不连接在计算机、服务器和因特网上的。当近线存储介质拿来覆盖设备时,它可以通过写保护来防止感染。如果用一台被感染计算机病毒的计算机来向近线存储介质写入数据,那么介质很可能会被感染。所以,推荐在使用前用杀毒软件程序扫描一下近线存储介质。1离线存储大数据的存储方法离线存储(offline storage)和近线存储类似,这种存储方式指的是每次在读/写数据时,必须
20、人为地将存储介质放入存储系统。离线存储用于永久或长期保存数据,而又不需要介质当前在线或连接到存储系统上。离线存储的介质通常可以方便携带或转运,如磁带和移动硬盘。因此,离线存储主要用于数据的备份和恢复。在大多数情况下,会尽量少地访问光盘、磁带上的数据。1异地备份异地备份(remote backup)就是将数据在另外的地方实时产生一份可用的副本,此副本的使用不需要做数据恢复,可以将副本立即投入使用,图6-1所示为某高校异地备份系统的示意图。异地备份大数据的存储方法异地备份的数据复制目前有如下实现方式。(1)基于主机。对于基于主机的数据复制技术,可以不考虑存储系统的同构问题,只要保持主机是相同的操作
21、系统即可,而目前也存在支持异构主机之间的数据复制软件,如BakBone NetVault Replicator就可以支持异构服务器之间的数据复制,可以支持跨越广域网的远程实时复制。其缺点是需要占用一点主机资源。(2)基于存储系统。利用存储系统提供的数据复制软件,复制的数据流通过存储系统之间进行传递,和主机无关。这种方式的优势是数据复制不占用主机资源,不足之处是需要灾备中心的存储系统和生产中心的存储系统有严格的兼容性要求,一般需要来自同一个厂家的存储系统,这样对灾备中心的存储系统的选型带来了限制。(3)基于光纤交换机。这项技术正在发展中,利用光纤交换机的新功能,或利用管理软件控制光纤交换机,对存
22、储系统进行虚拟化,然后管理软件对管理的虚拟存储池进行卷管理、卷复制、卷镜像等操作,来实现数据的远程复制。比较典型的有StoragAge、Falcon等。为了防止灾难或其他可能影响到整个站点的问题,许多人选择将重要的数据发送到其他站点来作为灾难恢复计划的一部分。这种存储方式保证即使站内数据丢失,其他站点仍有数据副本。异站保护可防止由自然灾害、人为错误或系统崩溃造成的数据丢失。1扩 展 知 识2大数据存储概述大数据的存储模型大数据存储的问题大数据存储的问题大数据的存储方法随着大数据应用的飞速发展,现已出现了独特的框架,直接推动了存储的发展、网络及计算技术的发展。由于大数据处理的需求是一个新的挑战,
23、硬件的发展最终还是需要软件的推动,因而大数据分析应用需求正在影响和促进数据存储基础的发展。随着数据量的持续增长,以及被分析数据的来源多元化,现在的存储系统的发展已经跟不上大数据存储发展的需求。基于存储设施的研究也越来越重要,其研究技术主要有以下几个方面。21全息存储23D XPoint下一代数据容量技术3五维数据存储技术全息存储下一代数据容量技术全息存储是利用全息照相的技术原理来实现数据记录的。这一概念是Dennis Gabor在1947年为提高电子显微镜的分辨率而提出的。它的最大优点是超高密度,不仅如此,全息存储还具有极大的提升潜力,只要控制芯片具有足够强的数据处理能力,全息存储技术甚至可以
24、提供高达1 000 TB的容量。相比之下,目前硬盘的最大容量才6 TB,这个容量只相当于全息存储的“立方体糖块”的一个小碎片所提供的存储能力。1)全息存储的原理全息存储是受全息照相的启发而研制的,在拍摄全息照片时,对应的拍摄设备并不是普通照相机,而是一台激光器。该激光器产生的激光束被分光镜一分为二,其中一束被命名为“物光束”,直接照射到被拍摄的物体,另一束则被称为“参考光束”,直接照射到感光胶片上。当物光束照射到所摄物体之后,形成的反射光束同样会照射到胶片上,此时全息影像完整信息就能被胶片记录下来,全息照相的摄制过程就这样完成了。初看过去,全息照片上只有一些乱七八糟的条纹,但当我们使用一束激光
25、去照射这张照片时,真实的原始立体图像就会栩栩如生地展现出来。2全息存储下一代数据容量技术全息存储技术同样需要激光束的帮忙,研发人员要为它配备一套高效率的全息照相系统。首先利用一束激光照射晶体内部不透明的小方格,记录成为原始图案后,再使用一束激光聚焦形成信号源,另外还需要一束参考激光作为校准。当信号源光束和参考光束在晶体中相遇后,晶体中就会展现出多折射角度的图案,这样在晶体中就形成了光栅。一个光栅可以存储一批数据,称为一页。使用全息存储技术制成的存储器称为全息存储器,全息存储器在存储和读取数据时都是以页为单位的。2)全息存储的优势与目前的存储技术相比,全息存储在容量、速度和可靠性方面都极具发展潜
26、力。由于全息存储器是以页作为读/写单位的,不同页面的数据可以同时并行读/写,其理论存储速度将相当快。业界普遍估计,未来全息存储可以实现1 GB/s的传输速度,及小于1 ms的随机访问时间。使用全息存储技术后,一块方糖大小的立方体就能存储高达1 TB的数据,这么高的容量并不是空穴来风。由于一个晶体有无数个面,我们只要改变激光束的入射角度,就可以在一块晶体中存储数量惊人的数据。我们可以把全息存储器看成书本,这也是其用小体积实现大容量的原理所在,理论上全息存储可以轻松突破1 TB的存储密度。与传统硬盘不同,全息存储器不需要任何移动部件,数据读/写操作为非接触式,使用寿命、数据可靠性、安全性都达到理想
27、的状况。全息存储几乎可以永久保存数据,在切断电能供应的条件下,数据可在感光介质中保存数百年之久,远优于硬盘。2全息存储下一代数据容量技术3)全息存储的发展2002年,全世界主要有三家公司在进行全息存储方面的研究,即美国InPhase科技、美国万胜公司及日本的Optware公司。尽管全息存储的技术自从20世纪60年代就开始讨论,而且至少从2001年就开始兜售接近使用的商用方案,但是直到现在仍然在试图使人相信这项技术会找到合适的市场。从2002年开始,计划中的全息存储产品还并不想与硬盘展开竞争,而是试图寻找到能够利用到它的特别优点的市场,如需要很高访问速度的应用等。2005年,在美国拉斯维加斯举行
28、的国家广播协会会议上,InPhase科技在美国万胜公司展位上公开展示了世界上第一个使用全息存储技术的商业存储设备原型。InPhase科技在2006年和2007年数次宣称将会推出其旗舰产品,然而在数次推迟发布以后,于2010年2月关闭。它的资产由科罗拉多州没收以偿还欠税。这家公司共花费了1亿美元,但是投资者无法再筹集更多的资本。2009年,通用电气全球研究中心展示了他们自行研究的全息存储材料,这种材料可以用于光盘,使用的读取技术和目前的蓝光光盘播放器类似。2014年,美国加利福尼亚大学河滨分校伯恩斯工程学院和俄罗斯科学院的研究人员演示了一种新型的全息存储器,结合了磁性数据存储和波基础的信息传输两
29、者的优点,能为电子设备带来前所未有的数据存储和处理能力。23D XPoint下一代数据容量技术3D XPoint的开发始于2012年,在英特尔和美光之前已开发了其他非易失性相变化内存技术(PCM);在2015年正式推出了3D XPoint,3D XPoint架构不同于以前提供的PCM,它是一种非易失性固态存储新形式,性能和耐久性比NAND闪存高得多。在价格方面,它处于DRAM和NAND之间。它的闪存单元的选择器和存储部分采用的是硫族化物材料,和传统的PCM材料相比,它的特点如下。(1)速度快。3D XPoint的读/写速度还不能超过RAM的速度,但是远远大于NAND的速度。(2)耐久长。它的耐
30、力比NAND长1 000倍。(3)低延迟。它的延迟是NAND闪存的千分之一,是DRAM延迟的十倍,这尤其突显了其高I/O操作的能力。这些特点使3D XPoint填补了数据中心存储器体系,其中包括处理器上的SRAM、DRAM、NAND闪存(SSD)、硬盘、磁带或光盘。它将适用于易失性DRAM和非易失性NAND闪存固态存储。3D XPoint主要用于服务未优化内存处理的随机事务数据集服务。例如,它可以用于对现有数据集执行有限的实时分析或存储和更新记录,毕竟没有多少人想为越来越高的连续吞吐量来额外付钱。2五维数据存储技术下一代数据容量技术英国南安普顿大学的科学家近日开发出一种新的数据存储技术,利用玻
31、璃中的微型纳米结构来编码信息。基于这一技术,标准尺寸光碟能保存约360 TB的数据,而在温度高达190 的环境中可维持长达138亿年。这一时间与宇宙的历史相仿,达到地球年龄的3倍。这一技术被称作“五维数据存储”,最初发表在2013年的一篇论文中。自那时以来,科学家仍在继续对该技术进行优化。目前,科学家计划进一步推动这项技术的发展,甚至实现商用。为了展示这一数据存储技术的优势,南安普顿大学团队将英皇钦定本圣经、牛顿的光学一书(光学和透镜理论的基础)及联合国世界人权宣言用这一技术进行了记录。对于这种光碟存储信息的方式,可以将其与普通CD进行对比。CD光盘上有凹凸不平的线条,可以被激光读取。如果激光
32、探测到凸起,就代表数据“1”,而如果没有凸起,那么代表数据“0”。这是一种二维的数据表达方式。基于这种方式,CD可以保存各种信息,无论是音乐、图书、照片、视频,还是软件。然而,由于这些微小凸起位于CD表面,因此很脆弱。物理磨损或暴露在有氧、高温、高湿的环境下,都会给数据造成破坏。2五维数据存储技术下一代数据容量技术五维光碟能使用位于碟片内的微型物理结构,即“纳米格栅”来保存信息,而通过读取折射的激光可以表达5种数据状态。这也是这种技术名称的来源。利用激光技术,设备可以知道纳米格栅的方向、激光折射的强度,以及用X、Y、Z轴表示的空间位置。因此,相对于传统光碟,五维光碟的数据存储密度更大;蓝光光碟
33、可以保存128 GB的数据,而五维光碟存储的数据量可以达到蓝光的近3 000倍,即360 TB。由于玻璃是一种坚固的材料,只有很高的温度才能导致玻璃融化或变形,而玻璃又有着良好的化学稳定性,因此,这种五维光碟能确保数据在非常长的时间里不会丢失。研究人员表示,五维光碟可以耐1 000 的高温。对图书馆和博物馆来说,五维数据存储技术很有潜力。这一技术也可以在不久的未来得到商用。尽管在这种光碟中记录信息还需要用到成本高昂的实验室激光设备,但光碟数据的读取并不困难。221图形数据库的组成2图形数据库的优势图形数据库3图形数据库的应用4常见图形数据库现代应用产生了很多大规模的图数据,如在线社交网络、万维
34、网、知识图谱等。这些图数据通常含有数以亿计的顶点和边,因而很难在一台机器上进行高效的处理与分析。因此,近年来很多用于处理大规模图数据的图形数据库系统应运而生。图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见的例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不理想,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。图形数据库的组成图形数据库在一个图形数据库中,最主要的组成有两种,即结点集和连接结点的关系,也称泡泡和箭头。结点集就是图中一系列结点的集合,比较接近于关系数据库中最常使用的表,而关系则是图形数据库所特有的组成
35、,如图6-2所示。2图形数据库的优势图形数据库在需要表示多对多关系时,我们常常需要创建一个关联表来记录不同实体的多对多关系,而且这些关联表常常不用来记录信息。如果两个实体之间拥有多种关系,那么我们需要在它们之间创建多个关联表。例如,分析明星社交关系数据,明星的微博有少则十几万,多则几千万的粉丝。在MySQL中,一条关注关系(明星ID,明星的一个粉丝ID)存为一条数据,那么当用户数量多起来时,关注关系轻松破亿、破10亿,甚至上百亿,并且为了保证每条数据的唯一性,还需要设置联合索引,MySQL就有些力不从心了。在一个图形数据库中,只需要标明两者之间存在着不同的关系。如果希望在两个结点集间建立双向关
36、系,就需要为每个方向定义一个关系。相对于关系型数据库中的各种关联表,图形数据库可以通过关系能够包含属性这一功能来提供更为丰富的关系展现方式。因此,相对于关系型数据库,图形数据库的用户在对事物进行抽象时将拥有一个额外的优势,即丰富的关系。2图形数据库的应用图形数据库社交网站是一个非常适合使用图形数据库的应用案例。通过使用这种技术,用户可以输入特定的条件(位置),缩小潜在合作伙伴的列表。求职网站也非常适合,以前在求职网站上输入自己的简历和个人信息之后,用户还不得不自己搜索最适合自己的职位。现在采用图形数据库技术,Glassdoor和前程无忧等公司够根据位置、技能等信息为求职者匹配求职机会。这种网站
37、是图形数据库的理想应用案例,因为这项技术可以实现即时响应。那些尝试从位置A发送包裹到位置B的路线选择快递公司也是一个很好的图形数据库应用案例。此外,图形数据库也可以应用于一些重要场景。例如,它可用于一些制药公司,找出哪些药物带有特定的蛋白质;保险公司也可以利用图形数据库进行风险分析。2常见图形数据库图形数据库1)Neo4jNeo4j是一个流行的图形数据库,它是开源的。最近,Neo4j的社区版已经由遵循AGPL许可协议转向了遵循GPL许可协议。尽管如此,Neo4j的企业版仍然使用AGPL许可。Neo4j基于Java实现,兼容ACID特性,也支持其他编程语言,如Ruby和Python。2)Floc
38、kDBFlockDB是Twitter为进行关系数据分析而构建的。FlockDB迄今为止还没有稳定的版本,对于它是否是一个真正的图形数据库,尚有争议。FlockDB和其他图形数据库(Neo4j、OrientDB)的区别在于图的遍历,Twitter的数据模型不需要遍历社交图谱。尽管如此,由于FlockDB应用于Twitter这样的大型站点,它相比其他图形数据库具有简洁性,其仍然值得人们关注。3)AllegroGraphAllegroGraph是一个基于W3C标准的为资源描述框架构建的图形数据库。它为处理链接数据和Web语义而设计,支持SPARQL、RDFS+和Prolog。AllegroGraph
39、是Franz Lnz公司(Web语义产品提供商,其旗舰产品是基于LISP的企业开发工具)的产品之一,Pfizer、Ford、Kodak、NASA和美国国防部都是该公司的客户。2常见图形数据库图形数据库4)GraphDBGraphDB是德国Sones公司在.NET基础上构建的。Sones公司于2007年成立,近年来陆续进行了几轮融资。GraphDB社区版遵循AGPL v3许可协议,企业版是商业化的。GraphDB托管在Windows Azure平台上。5)InfiniteGraphInfiniteGraph基于Java实现,它的目标是构建“分布式的图形数据库”,已被美国国防部和美国中央情报局所采
40、用。除此之外,还有其他一些图形数据库,如OrientDB、InfoGrid和HypergraphDB等。Ravel构建在开源的Pregel实现之上,微软研究院的Trinity项目也是一个图形数据库项目。221分布式存储的概念2分布式存储系统的关键技术分布式存储3分布式存储的分类百度、阿里巴巴、谷歌等互联网公司的发展促进了大数据的飞速发展,但是大数据的后台基础设施的主要目标都是构建低成本、高性能、可扩展、易用的分布式存储系统。虽然分布式系统研究了很多年,但是,直到近年来,互联网大数据应用的兴起才使得它大规模地应用到工程实践中。相比传统的分布式系统,互联网公司的分布式系统具有两个特点:一个特点是规
41、模大,另一个特点是成本低。不同的需求造就了不同的设计方案,可以这么说,百度等互联网公司重新定义了大规模分布式系统。分布式存储的概念分布式存储大规模分布式存储系统的定义如下:“分布式存储系统是大量普通PC服务器通过Internet互联,对外作为一个整体提供存储服务。”分布式存储系统具有以下几个特性。(1)可扩展。分布式存储系统可以扩展到几百台甚至几千台的集群规模,而且随着集群规模的增长,系统整体性能表现为线性增长。(2)低成本。分布式存储系统的自动容错、自动负载均衡机制使其可以构建在普通PC上。另外,线性扩展能力也使得增加、减少机器非常方便,可以实现自动运维。(3)高性能。无论针对整个集群,还是
42、针对单台服务器,都要求分布式存储系统具备高性能。(4)易用。分布式存储系统需要能够提供易用的对外接口,另外,也要求具备完善的监控、运维工具,并能够方便地与其他系统集成,如从Hadoop云计算系统导入数据。2分布式存储系统的关键技术分布式存储分布式存储系统的挑战主要在于数据、状态信息的持久化,要求在自动迁移、自动容错、并发读/写的过程中保证数据的一致性。分布式存储涉及的技术主要来自分布式系统及数据库两个领域,其关键技术包括以下几项。(1)数据分布。把数据均匀地分布在多台服务器上面,并能够实现跨服务器的读/写操作。(2)一致性。当数据的多个副本被复制到多台服务器上时,在异常情况下不同副本之间的数据
43、保持一致。(3)容错。故障能顺利被检测到,并能够把出现故障的服务器上的数据和服务自动迁移到集群中的其他服务器上。(4)负载均衡。保证新加服务器在服务集群中正常运行时,能够自动完成负载均衡,且在数据迁移过程中,不影响其他服务器。(5)事务与并发控制。实现分布式事务,实现多版本并发控制。(6)易用性。开放对外接口,且容易使用,系统监控界面对运维人员友好。2分布式存储的分类分布式存储分布式存储面临的数据大致有以下三类。(1)非结构化数据:包括所有格式的办公文档、文本、图片、图像、音频和视频信息等。(2)结构化数据:一般存储在关系数据库中,可以用二维关系表结构来表示。结构化数据的模式(schema,包
44、括属性、数据类型以及数据之间的联系)和内容是分开的,数据的模式需要预先定义。(3)半结构化数据:介于非结构化数据和结构化数据之间,HTML文档就属于半结构化数据。它一般是自描述的,与结构化数据最大的区别在于,半结构化数据的模式结构和内容混在一起,没有明显的区分,也不需要预先定义数据的模式结构。不同的分布式存储系统适合处理不同类型的数据,可以将分布式存储系统分为分布式文件系统、分布式键值(keyvalue)系统、分布式表格系统和分布式数据库四类。1)分布式文件系统互联网应用需要存储大量的图片、音频、视频等非结构化数据对象,这类数据以对象的形式组织,对象之间没有关联,这样的数据一般称为BLOB(b
45、inary large object,二进制大对象)数据。2分布式存储的分类分布式存储分布式文件系统用于存储BLOB对象,典型的系统有Facebook Haystack及Taobao File System(TFS)。另外,分布式文件系统也常作为分布式表格系统及分布式数据库的底层存储。例如,谷歌的GFS(Google file system,存储大文件)可以作为分布式表格系统Google Bigtable的底层存储,Amazon的EBS(elastic block store,弹性块存储)系统可以作为分布式数据库(Amazon RDS)的底层存储。总体上看,分布式文件系统存储BLOB对象、定长
46、块以及大文件三种类型的数据。在系统实现层面,分布式文件系统内部按照数据块(chunk)来组织数据,每个数据块的大小大致相同,每个数据块可以包含多个BLOB对象或定长块,一个大文件也可以拆分为多个数据块,如图6-3所示。分布式文件系统将这些数据块分散到存储集群,处理数据复制、一致性、负载均衡、容错等分布式系统难题,并将用户对BLOB对象、定长块及大文件的操作映射为对底层数据块的操作。2分布式存储的分类分布式存储2)分布式键值系统分布式键值系统用于存储关系简单的半结构化数据,它只提供基于主键的CRUD(create、read、update、delete)功能,即根据主键创建、读取、更新或删除一条键
47、值记录。典型的系统有Amazon DynamoDB及Taobao Tair。从数据结构的角度看,分布式键值系统与传统的哈希表比较类似,不同的是,分布式键值系统支持将数据分布到集群中的多个存储节点。分布式键值系统是分布式表格系统的一种简化实现,一般用作缓存,如Taobao Tair及Memcache。一致性哈希是分布式键值系统中常用的数据分布技术,因其被Amazon DynamoDB系统使用而变得相当有名。3)分布式表格系统分布式表格系统用于存储关系较为复杂的半结构化数据,与分布式键值系统相比,分布式表格系统不仅支持简单的CRUD操作,而且支持扫描某个主键范围。分布式表格系统以表格为单位组织数据
48、,每个表格包括很多行,通过主键标识一行,支持根据主键的CRUD功能及范围查找功能。分布式表格系统借鉴了很多关系数据库的技术,如支持某种程度上的事务(如单行事务)、某个实体组(entity group,一个用户下的所有数据往往构成一个实体组)下的多行事务。典型的系统包括Google Bigtable及Megastore,Microsoft Azure Table Storage,Amazon DynamoDB等。2分布式存储的分类分布式存储与分布式数据库相比,分布式表格系统主要支持针对单张表格的操作,不支持一些特别复杂的操作,如多表关联、多表联接、嵌套子查询;另外,在分布式表格系统中,同一个表格
49、的多个数据行也不要求包含相同类型的列,适合半结构化数据。分布式表格系统是一种很好的权衡,这类系统可以做到超大规模,而且支持较多的功能,但实现往往比较复杂,而且有一定的使用门槛。4)分布式数据库分布式数据库一般是从单机关系数据库扩展而来的,用于存储结构化数据。分布式数据库采用二维表格组织数据,提供SQL关系查询语言,支持多表关联、嵌套子查询等复杂操作,并提供数据库事务及并发控制。典型的系统包括MySQL数据库分片(MySQL Sharding)集群、Amazon RDS及Microsoft SQL Azure。分布式数据库支持的功能最为丰富,符合用户使用习惯,但可扩展性往往受到限制。当然,这一点
50、并不是绝对的。Google Spanner系统是一个支持多数据中心的分布式数据库,它不仅支持丰富的关系数据库功能,还能扩展到多个数据中心的成千上万台机器。除此之外,阿里巴巴OceanBase系统也是一个支持自动扩展的分布式关系数据库。221传统存储管理技术面临的问题2解决方法数据存储管理据IT行业专家称,全球电子存储数据总量每两年翻一番。随着越来越多的企业走向数字化,其数据量的增长推动了存储技术,提高了效率和成本效益,并对数据管理工具产生了更大的市场需求。许多组织正在考虑采用外包服务或云存储选项,包括用于灾难恢复和备份的选项,以作为其整体存储和数据管理策略的一部分。在这个过程中,重要的是要知道