龙源期刊网 http://www.qikan.com.cn
大数据环境下NoSQL的数据存储技术及应用
作者:赵卫
来源:《电脑知识与技术》2016年第19期
摘要:近年来,随着Web2.0的兴起,数据呈爆发式的增长NoSQL数据库凭借其易扩展、高性能、高可用、数据模型灵活等特点得到了业界的认可和快速的发展。该文分析了NoSQL技术的独特之处及其显著优势,研究各类NoSQL技术并进行了比较,最后对研究前景进行展望。
关键词:大数据;NoSQL;数据模型
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)19-0011-03
传统的关系数据库有着稳定的性能和强大的功能,久经考验且使用简单,同时关系型数据库也积累了大量的成功案例。在互联网的发展时期,是曾经的领导者,它为互联网的发展做出了卓越的贡献。然而近几年,随着动态交互网站Web2.0的迅速兴起,访问量不断上升,传统的关系数据库对此显得力不从心,尤其是在大数据量高并发的情况下,暴露了很多难以克服的问题。而非关系型的数据库NoSQL有着非常高的读写性能,能够解决海量数据集合下,对多重数据种类进行快速存储和读取的难题。 1 大数据对数据库存储技术的要求
大数据时代,随着云服务等应用的快速普及,对数据中心提出了革命性的需求,数据的存储架构已经成为网络服务的核心要素。另外,互联网“+”等一系列应用的推进和发展,使各种各样的数据成为炙手可热的资产、资源。存储系统作为数据的载体,将成为大数据基础架构中最为关键的核心组成之一。
基于互联网大数据的应用需求,提出了“应用定义存储”这一概念。作为核心数据基础的存储系统,不再仅仅是分散的、单一的底层设备。它除了要具备高可靠性和安全性等优异的性能之外,还要求具备并行分布、虚拟化、良好的扩展性以及异构资源整合等多方面的特点,这样才能满足具备大数据特征的业务应用需求。海量数据需要对对数据进行高速的读取和存储,同时爆发增长的数据对存储设备的容量提出更高的要求,我们需要充分考虑存储系统的数据的功能集成度、安全性、稳定性以及系统的易扩展性等各方面的因素。 2 NoSQL数据库 2.1 NoSQL数据库的特点
龙源期刊网 http://www.qikan.com.cn
1)易扩展性
NoSQL数据库虽然种类繁多,但是它们共同的特点就是数据之间无关。这就使得数据库扩展性获得突破性进展,完全区别与传统的关系型数据库。同时在架构的层面上,硬件设备可扩展的能力也得到极大的增强。 2)大数据量,高性能
NoSQL数据库都具有非常高的并发读写性能,这一点在海量数据的处理上表现的尤其明显。这一特点得益于NoSQL数据库的无关系性,它的结构简单。我们知道,关系型数据库使用 Query Cache,每更新一次表Cache就会失效,在web2.0时代,短时间内会有大量数据交互频繁的应用,这样一来,Cache性能和效率就不高。而NoSQL的 Cache是记录级的,是一种细粒度的Cache,所以相比较关系型数据库而言性能就要高的多了。 3)灵活的数据模型
NoSQL不需要事先为存储数据建立相应的字段,用户可以随时存储自定义的各种数据格式。在关系数据库里,要给数据表里增加或者删除字段是非常麻烦的,尤其是在大数据量的表里,增加和删除某一字段简直就是一个噩梦。 4)高可用
NoSQL在不太影响性能的情况下,就可以方便地实现高可用的架构。比如Cassandra,HBase模型,我们甚至可以通过复制模型来实现NoSQL的高可用。 2.2 NoSQL数据库分类
1)键值(Key-Value)存储数据库
键值存储型数据库会用到Hash表,在每一个Hash表中,有一个特定的键和一个指针会指向特定的数据。对于应用系统来说键值模型的优势是简单、容易部署。但是假如数据库管理员只需要对其中一部分值进行查询或更新操作的时候,键值存储数据库就显得效率低下了。举例如:Redis, Voldemort, . 2)列存储数据库
为了应对分布式存储的海量数据,通常会用到列存储数据库。虽然在数据库中仍然存在键,但不同的是它们是指向多个列,而这些列则是由列家族来安排的。举例如:Cassandra, HBase, Riak。 3)文档型数据库
龙源期刊网 http://www.qikan.com.cn
文档型数据数据库最大的特点在于数据模型是文档,它们以特定的格式存储在数据库中,比如JSON。与键值数据库相比较而言,文档型数据库的查询效率更高一些,它被认为是键值存储数据库的升级版,允许数据库之间嵌套键值。举例如:CouchDB, MongoDB。 4)图形(Graph)数据库
图形数据库同关系型数据库最大的不同就在于,它使用了灵活多变的图形模型,并且能够将该模型扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询时需要制定相应的数据模型,这就使得数据库的可扩展性受到一定的限制。图1给出了目前正在使用的主要NoSQL数据库类型及其各自的占比。 3 与传统数据库的比较
3.1 NoSQL与关系型数据库的比较
与传统的关系型数据库相比,它们之间最主要的差异就是数据存储的方式不同。SQL存储一些格式化的数据结构,数据是表格式的,数据表之间可以彼此关联相互协作存储。这样的结构使得对数据的提取操作相对方便很多,这也是关系型数据库无法突破的一个性能瓶颈。 NoSQL数据库是大块组合在一起的非结构化数据,因此不适合存储在固定的数据表中,数据大多是以键值对存储,由于它不局限于固定的结构,因此可以减少一些时间和空间的开销,从而符合大数据环境下对海量数据的快速提取和存储的要求。表1比较了SQL和典型的NoSQL数据库MongoDB之间的差异。
随着数据的海量增长,数据库需要随着扩展。SQL数据库是纵向扩展的,要提高数据库的处理能力,就需要使用速度更快的硬件,因而最终会达到扩展的上限。NoSQL数据库采用横向扩展,分布式存储数据,因此可以通过增加更多的节点来分担负载,这使得数据库的扩展成本降低,并且能够快速有效的实现扩展。
SQL数据库提供可靠地存储和处理数据,但是对海量数据的高并发提取和写入能力显然不够,而NoSQL最大的优势是在应对大数据方面,它用无模式方式做数据管理,所以其横向扩展潜力是不受限的。 3.2 NoSQL技术特点 1)索引支持
关系型数据库在设计最初主要考虑的是如何使得用户的工作更加简单,设计者们没有预料到今天的互联网应用竟然会对可扩展性提出如此高的要求。不可否认,SQL语言的产生促进了数据库接口标准化的形成,从而产生了Oracle这样的数据库公司的,它的发展也同时带动了互联网相关产业链的发展。传统的关系型数据库由于其在单机存储引擎上支持索引,因而大大降
大数据环境下NoSQL的数据存储技术及应用



