大数据环境下NOSQL的数据存储技术及应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关键词:大数据;nosql;数据模型
中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2016)19-0011-03
1 大数据对数据库存储技术的要求
大数据时代,随着云服务等应用的快速普及,对数据中心提出了革命性的需求,数据的存储架构已经成为网络服务的核心要素。

另外,互联网“+”等一系列应用的推进和发展,使各种各样的数据成为炙手可热的资产、资源。

存储系统作为数据的载体,将成为大数据基础架构中最为关键的核心组成之一。

基于互联网大数据的应用需求,提出了“应用定义存储”这一概念。

作为核心数据基础的存储系统,不再仅仅是分散的、单一的底层设备。

它除了要具备高可靠性和安全性等优异的性能之外,还要求具备并行分布、虚拟化、良好的扩展性以及异构资源整合等多方面的特点,这样才能满足具备大数据特征的业务应用需求。

海量数据需要对对数据进行高速的读取和存储,同时爆发增长的数据对存储设备的容量提出更高的要求,我们需要充分考虑存储系统的数据的功能集成度、安全性、稳定性以及系统的易扩展性等各方面的因素。

2 nosql数据库
2.1 nosql数据库的特点
1)易扩展性
nosql数据库虽然种类繁多,但是它们共同的特点就是数据之间无关。

这就使得数据库扩展性获得突破性进展,完全区别与传统的关系型数据库。

同时在架构的层面上,硬件设备可扩展的能力也得到极大的增强。

2)大数据量,高性能
3)灵活的数据模型
nosql不需要事先为存储数据建立相应的字段,用户可以随时存储自定义的各种数据格式。

在关系数据库里,要给数据表里增加或者删除字段是非常麻烦的,尤其是在大数据量的表里,增加和删除某一字段简直就是一个噩梦。

4)高可用
nosql在不太影响性能的情况下,就可以方便地实现高可用的架构。

比如cassandra,hbase模型,我们甚至可以通过复制模型来实现nosql的高可用。

2.2 nosql数据库分类
1)键值(key-value)存储数据库
键值存储型数据库会用到hash表,在每一个hash表中,有一个特定的键和一个指针会指向特定的数据。

对于应用系统来说键值模型的优势是简单、容易部署。

但是假如数据库管理员只需要对其中一部分值进行查询或更新操作的时候,键值存储数据库就显得效率低下了。

举例如:redis, voldemort, .
2)列存储数据库
为了应对分布式存储的海量数据,通常会用到列存储数据库。

虽然在数据库中仍然存在键,但不同的是它们是指向多个列,而这些列则是由列家族来安排的。

举例如:cassandra,hbase, riak。

3)文档型数据库
文档型数据数据库最大的特点在于数据模型是文档,它们以特定的格式存储在数据库中,比如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系统由于是在系统层面提供对索引的支持,这就使得单机存储引擎更为简单和纯粹,从而击碎系统可扩展的瓶颈。

2)并发事物处理
3)数据结构
关系型数据库的存储引擎是一颗动态的磁盘b+树,为了提高性能,可能需要有insert buffer聚合写,query cache缓存读,因而常常需要缓存管理机制,数据库里数据的读取和写入是互相影响的,因而系统的性能不高。

然而,在nosql系统中,数据首先被写入到内存,当数据量达到一定的程度时才会dump到磁盘而生成sstable文件。

相对于关系型数据库的动态的b+树, sstable就是一个排列有序的有序数组。

显而易见,实现一个有序数组要比实现一个动态b+树简单且高效的多。

4)join操作
关系型数据库需要在存储引擎层面支持join,而nosql系统一般会根据具体的应用实例来决定join实现的方式。

nosql基本上不进行复杂处理,它只应用在特定领域,这一点恰好弥补了关系型数据库的不足。

4 结束语。

相关文档
最新文档