大数据分析:R基础及应用
上QQ阅读APP看书,第一时间看更新

2.2 分布式数据库

大数据包括结构化数据、半结构化数据及非结构化数据,大数据的存储与普通数据存储的差别主要表现在数量级别和能否存储索引非结构化数据上。对于声音、图片、视频等非结构化数据,传统的关系型数据库无法满足存储需求,因此非关系型数据库变得尤为重要。大数据处理系统将通过NoSQL来存储这些非结构化数据并对这些数据进行相关的检索。

NoSQL数据库指的是非关系型的数据库。NoSQL数据库主要面向Web应用,支持分布式存储,能够满足对数据库高并发读写需求、海量数据的高效存储需求、数据库高扩展性和高可用性的需求等。NoSQL数据库可以分为以下三类:面向高性能读写的数据库、面向文档的数据库及面向分布式计算的数据库(比如Cassandra数据库)。NoSQL具有自由灵活的数据模型,典型的NoSQL数据库是以键值(Key-Values)的形式存储数据的。

NoSQL满足CAP理论、BASE原则。CAP指的是对于以下三个特性:一致性、可用性及分区容错性,分布式系统不能同时满足,最多只能满足三个特性中的两个。BASE指的是Basically Available、Soft state、Eventually consistent。Basically Available(基本可用)指的是对于系统短时间内的不可用是可容忍的;Soft state(柔性状态)指的是系统有异步的情况存在,即在某个时期可以不同步;Eventually consistent(最终一致性)指的是只要最终的数据满足一致性即可,不要求时刻满足一致性。NoSQL数据库的设计一般针对具体的应用,遵循以上两个原则,比较注重数据的读写效率、数据的容量和系统的可扩展性等。

目前普遍使用的关系型数据库采用的是关系型数据模型,对数据存储增加及一些需要满足的数据范式,有时需要强行修改对象数据,以满足关系型数据库管理系统的需要,而NoSQL数据库完全改变了传统的观念,通过改变某些数据范式的严格要求,获得灵活的扩展性、灵活的数据模型、能够有效处理大数据、降低管理和维护成本等众多优点。表2.1对NoSQL数据库与关系型数据库的原理、规模、模式等进行了一个对比分析。

表2.1 NoSQL和关系型数据库的简单比较

随着互联网Web 2.0网站的兴起,传统的关系数据库在应付Web 2.0网站,特别是超大规模和高并发的SNS类型的Web 2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

在信息技术融合应用的新时代,大数据就是像黄金一样的新型经济资产、像石油一样的重要战略资源。为满足大数据对处理和存储能力的无限需求,现今的计算机体系结构在数据存储方面要求具备庞大的水平扩展性(Horizontal Scalability,即要求满足能够连接多个软硬件的特性,这样可以将多个服务器从逻辑上看成一个实体),而NoSQL致力于改变这一现状。目前Google的BigTable和Amazon的Dynamo使用的就是NoSQL数据库。NoSQL数据库根据数据的存储模型和特点分为很多种类,如列存储、文档存储、Key-Value存储、图存储、对象存储、xml存储等数据库。表2.2给出了几种典型的NoSQL数据库及其性能优缺点。

表2.2 典型的NoSQL数据库分类

在过去的10年里,正如交易率发生了翻天覆地的增长一样,需要存储的数据量也发生了急剧的膨胀,这种现象被称为“数据的工业革命”。为了满足数据量增长的需要,RDBMS(关系型数据库管理系统)的容量也在日益增加,但是对于一些企业来说,随着交易率的增加,单一数据库需要管理的数据约束的数量也变得越来越让人无法忍受了。现在,大量的“大数据”可以通过NoSQL系统来处理,它们能够处理的数据量远远超出了最大型的RDBMS所能处理的极限,很好地弥补了关系数据在某些方面的不足。