APP下载

浅谈NoSQL数据库的数据存储

2019-10-21尹妍朱立伟

科学与信息化 2019年6期
关键词:数据存储

尹妍 朱立伟

摘 要 本文通过对NoSQL数据库的概念与特性进行简要的阐述,分析其在数据存储方面的优势与不足,并结合其发展历程与目前的应用状况对这种新的数据库形式进行简要探讨。

关键词 NoSQL数据库;数据存储;非关系型数据库

1NoSQL数据库的概念与特性

所谓NoSQL数据库,即Not Only SQL(不仅仅是SQL)的缩写。传统SQL数据库为关系型的数据存储,需要严格的数据模式。而NoSQL数据库提倡非关系型的数据存储,都没有模式。NoSQL数据库打破了曾经占据主导地位的关系型数据库垄断,不需要事先设计表结构便能够轻易实现数据的非结构存储。

除了非关系型这一特点,NoSQL还具有分布式、API形式简单、适合大数据存储、无架构等其他特点。传统关系型数据库经过多年发展,虽已健全成熟,但仍然有受限于固有模式而无法优化的缺陷。而NoSQL面对这些缺点,能够表现出异常优秀的性能——这也就是NoSQL自提出后就一直受到广泛关注的原因[1]。

2NoSQL的数据存储

2.1 以Hbase为代表的列存储类型

列存储类型,顾名思义,是按照列来存储数据的。与之相对的,传统关系型数据库大都使用行存储方式。图中显示两种数据存储的模式。左为传统型行存储模式,右为列存储模式。

存储结果如下(上为行存储模式,下为列存储模式)。

显而易见,在需要读取同一列数据的场合下,列存储类型能表现出非常优异的性能。此外,列式数据库的空间利用率要优于行式数据库,原因在于列式存储更有利于进行空间压缩操作,十分适合稀疏数据的存储。相较于小量数据,列式存储更适合TB级及以上的大数据存储。但它的数据由于分布较广,并不适合大范围查询。

Hbase数据库为列存储类型数据库的代表,除此以外还有Cassandra、Hypertable等。常常被使用在数据量较大且还会持续增长的场合之中。

2.2 以Neo4J为代表的图存储类型

图是离散数学中的概念。在数据结构中,图形结构也是四种基本逻辑结构之一。在关系型数据库时代,人们就试图将图投入到数据库中使用,却面临着设计笨拙、性能低下的困境。而基于NoSQL理念,以Neo4J为代表的图形数据库打破了这一限制,解决了长久以来的问题。

Neo4J中的图沿用了数据结构中的概念,保留了点和边的基本概念。其中,点代表实体,边代表实体之间的关系。所有的实体作为一个个点,散乱地分布在图上,存在特定关系的实体之间用边相连。其储存方式实现类似邻接表,每个节点通过指针指向相邻节点,且有单独的边集和点集。这一模式有利于從任何一个节点出发都可以遍历整个图,查找速度非常快,且只要沿着关系边集就可查找,时间复杂度不受总数据量的影响。

需要注意的是,图存储结构受到数据关系特点的影响,在那些关系复杂且紧密的数据中有着良好的性能,但对于普通的大数据则会有反效果。除了Neo4J外,常用的还有FlockDB、ArangoDB等数据库。

2.3 以Redis存储为代表的键值存储类型

键值存储类型即Key-Value存储类型。在这种模式下,所有的数据以键值对的形式存入数据库中,并且以这种形式继续支持后续的操作。

在键值存储类型中,每个数据值(Value)都对应一个关键字,即Key,用于索引和查找。在操作过程中只能通过键来查询,不能使用值来查询。每个数据也是相对独立的,两个键之间没有关联。

通常,键值存储类型只适用于那些关系简单的数据,适用面较狭窄。但是在其适用范围内,表现出极高的IO性能。

Redis、MemcacheDB、LevelDB是此类数据库的代表,常用于用户信息存储方面。

2.4 其他类型

除去上述三种类型,还有以MongoDB为代表的文档存储类型,其数据以.json和.xml格式的文档存储,可以任意存储读取数据而不受数据关系和规模的约束;以db4o为代表的对象存储类型,其语法类似c++等面向对象语言,通过对象来保存数据;以ElasticSearch为代表的全文搜索引擎,主要针对传统关系型数据全文搜索功能低下而产生的优化数据库,等等[2]。

3NoSQL数据库存储数据的发展进程与现状

最早发现关系型数据库限制的是谷歌公司,为解决自身发展面临的技术问题,它最早开发了GFS,顺利克服了关系型数据库技术的固有矛盾,后来为使得半结构化数据能够更加便捷地进行存储,谷歌公司又相继开发出BigTable、MapReduce等数据库类型。国内NoSQL数据库的领军者主要是腾讯公司及其他众多的新型互联网公司。

目前为止,市场上共有二十多种NoSQL数据库,尽管都是非关系型数据库,但是彼此有各自的优势所在,需要使用者了解其不同特性,根据具体的需求灵活使用。可以说,NoSQL数据库的出现是数据库技术发展的必然趋势,需要人们发挥自身的才智对其进行不断完善。

参考文献

[1] 刘玉程,李港.NoSQL数据库与关系型数据库对比[J].中国新通信,2018,20(07):81.

[2] 雷宇辉,钟雯,何清,等.Nosql数据库研究文献综述[J].电子世界,2017,(04):11-12.

猜你喜欢

数据存储
简单的数据修复
大数据时代档案信息建设的认识和实践
开源数据库数据存储的实现路径分析
基于Android开发的APP数据存储研究
哈希算法在物联网数据存储中的应用
空难事故跨媒体信息采集与检索方法的研究
基于STM32的AD采集与SD卡数据存储
浅谈信息系统工程和POJO模型组件开发
基于MongoDB的调查决策系统数据存储方案设计
大型在线式UPS及监控系统在中控机房的应用