基于NoSQL数据库的大数据处理分析
2015-06-24赵鑫
赵鑫
摘要:随着互联网的急速发展和云计算的大范围普及,我们生活的环境正在经历着大规模的数据爆炸,海量的数据在迅速的增长和积累,我们已经步入了大数据的时代。面对如此庞大的数据量,传统的关系数据库存储的硬盘已经无法承受各种需求,对于高访问和高存储的海量数据也无法满足其高效率的要求,对于改善服务器对于高扩展性和高可用性的缺陷问题,NoSQL这种数据库变营运而生,对于大数据的处理起着至关重要的作用。该文将从NoSQL的相关内容进行阐述,进而提出基于NoSQL数据库的大数据处理的分析。
关键词:NoSQL;数据库;大数据;数据处理
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)11-0026-02
Analysis of Large Data Processing Based on NoSQL database
ZHAO Xin
(Liaoning Administration Institute, Shengyang 110161, China)
Abstract: with the wide range of the rapid development of Internet and the popularity of cloud computing, our living environment is undergoing a massive explosion of data, massive data in the rapid growth and accumulation, we have entered the era of big data. In the face of such a huge amount of data, the traditional relational database storage hard disk has been unable to withstand a variety of needs, for the high access and storage of massive data can not meet the requirements of high efficiency, to improve the server for high scalability and high availability problems of NoSQL database, the operation is born, to handle large data plays a vital role in the. This paper will elaborate the related content of NoSQL, and analysis of large data processing based on NoSQL database.
Key words: NoSQL; database; data; data processing
随着社会的发展和不断的进步,海量是数据已经大规模的出现在人们的生活和科学研究的各个领域之中,人们对于如此多的数据的存储和管理的问题必须重视考虑,互联网和云计算技术的兴起,越来越多的人们乐意与其他人进行网上分享和交流,尤其随着电子商务的发展、测量技术、生物化学、医学天文等各个领域,要想将有价值的数据在海量的信息中提取出来,仅仅通过传统的数据库结构已经不能将这些庞大的数据进行及时有效的处理,于是,一种新的设计思想力求满足系统的不同需求,没有固定的模式,可以进行扩展,对传统的关系型数据库进行补充,这些系统目前被统称为NoSQL数据库。
1 关于大数据
大数据在近段时间来,已经走入了我们的生活之中,大数据具备着数据量大、结构复杂、实时性高、价值密度低这样的四个特征,被归纳为“四个V”,即Volume、Variety、Velocity、Value。主要是对海量的数据在可容忍的时间范围内进行数据捕捉、存储、查询、共享、分析以及显示。现在的人们在日常生活中喜欢与人分享自己的心情、图片等,通常通过微信、微博等社交工具,因此,常见的如网络日志、视频图片、地理位置等都已经成为大数据的数据来源,而且这些存在的数据大部分是半结构化或者是非结构化的数据。
大数据中的数据是海量的,但是价值密度低,也就是说大量的信息中,信息量的价值较低,加之对大数据的处理存在缺陷和问题,导致只有在足够多的数据之中,拥有足够的能力对这些海量数据加以处理,才能真正的去挖掘出有价值的部分,从而为企业等创造巨大的价值。而从技术层面来说,就需要具备分析处理数据的工具和人才,采用更加灵活、高效的数据存储模型与处理方式来应对大数据环境之下的海量数据。
2 关于NoSQL
2.1 NoSQL的概念
NoSQL(Not Only SQL)是在1998年便被提出,直到2009年作为非关系的分布式数据库才被世人所知,NoSQL主要是指相对于传统关系数据库的一类数据库的总称,这一类数据库主要采用的是灵活的、分布式的、可扩展的数据存储方式来对数据进行管理,去满足大数据存储于处理的需求,由于此类数据库对关系操作不支持,因此一般情况下不支持SQL的语言接口。
2.2 NoSQL的特点
相比于传统的数据库,NoSQL主要具备四大优势的特点,即较容易扩展、较高的性能、数据模型的灵活性、可用性能高。NoSQL数据库摒弃了传统的关系型数据库的特征,数据之间无关系,扩展起来较为容易,同时,NoSQL数据库的结构简单,因此在大数据的环境下更有利于读写,NoSQL可以将用户存储的数据可以及时进行存储,更符合大数据的特点,对此进行优化,可提供更加高效、符合大数据处理数据的需求的操作方式。
3 NoSQL数据库的存储模型
由于NoSQL并非基于关系模型的数据结构,因此,NoSQL数据存储通常是不基于表的连接操作。NoSQL数据库可以根据数据库的存储模型及其特点进行分类,通常可分为四个类型,即:广义列模型、键值模型、文档模型和图模型。NoSQL数据库存储模型划分实例和特点如图1所示。
图1 NoSQL数据库存储模型划分
3.1 广义列模型
广义列模型也可以叫做列式模型,这种模型并不支持类似于多表连接这样的操作,主要适用于类似传统的二维表的这样的数据库,列式模型主要的特点就是在对数据进行存储时,主要是围绕列而并非行进行存储。也就是说,在大数据之中进行海量数据的存储的时候,同一列的数据会尽可能的存放在硬盘的同一个页面上,这样的优势在于,对于同一列数据进行海量的数据分析时,会大大的减少硬盘的输入及输出的操作,这样便可以极大的提升数据处理的速度。
3.2 键值模型
键值模型的思想来源于数据结构中的哈希表,有一个特定的key和一个value指针,用来指向特定的数据。在大数据的环境之下,海量的数据存储使用键值模型最大的优势就在于数据模型相对简单,比较容易实现,非常使用通过key对数据进行查询和修改等操作。但是如果整个大数据的环境之中存储系统更加注重的是批量数据的查询以及更新的操作,那么,键值模型便在效率上处于劣势,可见,键值模型的存储方式并不适用于较为复杂的数据操作。
3.3 文档模型
文档模型的数据库就好比是在键值存储模型和传统的关系数据库之间进行沟通,数据结构主要是以JSON或者是相类似的JSON格式的文档对数据进行存储,在存储过程中,是有语义存在的,文档模型的数据库主要应用为MongoDB和CouchDB。通常来说,文档模型的数据库可以认为是键值数据库的升级,对键值是允许嵌套的,而且文档模型是可以对其值进行索引的创建,这样会方便上层的应用,这也正是键值数据模型所无法支持的。与键值数据模型相比,文档数据模型在海量数据查询时,效率会更为突出。
3.4 图模型
目前来说,对于图模型的研究为数不多,不过,从早期的数据模型发展来看,所说的图模型就是传统关心数据库中的网络结构图,但图结构较关系数据库模型相比更加规范化,但是,传统的关系数据库在对文件的递归结构以及社交网络结构查询的时候会受到性能的影响,不但操作缓慢,而且对于表中元组数量的增加无法跟着伸缩,为了解决传统关系数据库的性能缺陷,研究人员便提出了图模型。一个完整的图模型当中包含节点、关系、节点和关系上的属性等单元。
4 基于NoSQL数据库的大数据处理方法
4.1 MapReduce方法
MapReduce是目前处理大数据最普遍和最流行的方法。Map即映射,Reduce即化简,设计思想主要来源于函数编程语言,对于MapReduce处理大数据的流程图如图2所示。
图2 MapReduce处理任务流程图
在大数据环境之下,MapReduce 的流程就是将大数据集分解成为多个小数据集,一个或多个数据集分别由集群中的节点来处理和生成中间结果,然后这些中间节点又通过大量的合并形成最终结果,在这整个过程中,需要用户完成的工作只是编写所需的 Map 函数和Reduce 函数。处理大数据的效率是非常快的。
4.2 Dryad 方法
Dryad是微软公司发布的并行处理海量数据设计的分布式架构,可以为海量的数据提供高效可靠的分布式扩展服务,同时,还可以为海量的数据处理的并行程序提供一个分布式的高效率的执行引擎。Dryad的架构主要包含了四个重要的组件:基础设施(WindowsHPC Server)、DFS(即分布式文件系统,Cosmos)、执行引擎(Dryad )和语言解释引擎(DryadLINQ)。
总之,在如今这个大数据的时代,传统的关系数据库已经逐渐的不能再适应人们的需求,NoSQL数据库则具有良好的扩展性和可用性,可以将传统的数据库的缺陷进行弥补,大数据时代的到来以及云计算技术的普及,都为NoSQL数据库带来了新的挑战与机遇,NoSQL数据库还有许多地方值得深思,但将NoSQL数据库与其他的技术相结合,在大数据的海量数据处理之中,对于提高速度和存储容量仍是不可取代的!
参考文献:
[1] 李伟.大数据下的NoSQL数据库技术分析[J].信息通信.2014(7).
[2] 李青.基于NoSQL的大数据处理的研究[D].西南电子科技大学.2014.
[3] 吴金朋.一种大数据存储模型的研究与应用[D].北京邮电大学.2012.