随着计算机技术和网络的快速发展,半结构化和非结构化等类型数据成几何倍增长,学习和使用大数据管理技术顺应时代发展潮流。本文从数据管理技术的发展进程出发,介绍了人工管理方式、文件系统管理方式、数据库管理方式三种阶段的管理方式。然后详细介绍了关系数据库和NoSQL非关系数据库,并且将两者从三种角度进行了对比。最后对未来大数据时代信息管理方式作出了展望。
引言
随着计算机和网络技术的快速发展,移动互联、社交网络、电子商务、云计算等各种新兴服务的兴起,极大拓展了互联网的疆界和应用领域,随之产生的是海量的数据,这些数据不仅来源的渠道多样,并且数据规模和数据种类也是快速的增长,大数据时代已经来临。大数据时代,无法将海量数据存储和管理在一台或者有限数目的服务器内,更无法借助有限的计算机去处理和管理大数据。因此,如何利用现有的资源应对当前数据量的快速增长,实现对大数据的有效、便捷、安全的管理,是当前国内外关于数据管理和数据分析亟需解决的问题。
1 数据管理技术的发展
数据管理是指对各种类型的数据进行采集、存储、分类、计算、加工、检索和传输的过程。随着计算机和网络技术的不断发展和改进,数据库管理技术也在不断的更新换代。到目前阶段为止,数据管理技术主要发展历程经历了以下阶段:人工数据管理方式、文件系统管理方式和数据库系统管理方式。
1.1 人工数据管理方式
20世纪50年代中期,计算机初期被应用于科学计算方面,因此,早期的数据处理都是手工完成的。数据存储只有磁带、卡片和纸带等低速存储设备。既没有操作系统,也没有管理数据的专门软件,此阶段管理的数据,不能进行共享,且没有独立性,数据纯粹面向应用,服务于应用。
1.2 文件系统管理方式
20世纪60年代中期,随着计算机进一步的发展,不仅用于科学计算,而且更多地用于信息处理。对于数据存储,有了磁盘、磁鼓等存储设备。操作系统和高级语言的出现为文件系统管理提供了可能。此阶段的文件系统,是按照相应的规则将数据组织成一个独立的命名文件。这一时期的数据特点是:数据可以长期存储在磁盘上、有专门的软件进行管理维护、数据不再独立存在,数据不止服务于应用,在一定程度上,数据的共享性得到了提高。
1.3 数据库系统管理方式
20世纪60年代后期,数据库系统管理方式逐渐形成并具有一定的规模。由于磁盘技术的不断进步和发展,低成本、高速的硬盘占领了市场,为新的数据管理技术提供了产生的必要条件。对应的软件技术也有一定的发展。数据库系统是由计算机的软硬件资源共同组成,实现了数据的动态、有规则、独立存储。如图1所示。
2 大数据管理技术
大数据是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。归结为四个特点就是四“V”,即大量(Volume)、高速(Velocity)和多样性(Variety)和价值(Value)。大数据首先体现在数据量上:全球著名咨询机构IDC(国际文献资料中心)在2006年估计全世界产生的数据量是0.18ZB(1ZB=100万PB),而截至2011年这个数字已经提升了一个数量级,达到1.8ZB。这种数据产生的速度仍在增长,预计2015年将达到8ZB。随着数据量的增长,得到庞大的数据源和样本数据后,人们并不能容忍对于这些庞大的数据处理响应时间。因此,大数据需要在数据量提高的前提下,数据的处理和响应能力进行提高,从而确保数据延迟可以在人们的接受范围之内。因此数据处理要得到有效的保证,那如何存储和组织管理这些海量数据,值得我们去探索和研究。
2.1 关系型数据库(RDBMS)
2.1.1 关系数据库的提出
20世纪70年代初,IBM工程师Codd发表了一篇论文“A Relational Model of Large Shared DataBanks”,随之关系数据库时代宣告到来。关系数据库管理系统(Relational Database ManagementSystem,简称RDBMS)就是基于上述的论文而被设计出来的。在关系数据库之前的系统主要有基于层次模型的层次数据库、基于网状模型的网状数据库等。以上几种数据库的主要不足是数据模型是很难被用户所理解,并且编写的软件与数据模式依赖性比较高。Codd提出的关系数据模型是基于表格、行、列、属性等基本概念,将现实世界中的各类实体及其关系映射到表格上,并且还为关系模型建立了关系代数运算。
2.1.2 关系数据库的应用
关系数据库系统最初主要是应用于事务处理领域。随着数据的不断积累增长,人们需要对数据进行分析操作,提取出有用的信息以支持决策等等。这些分析操作主要包括简单汇总、联机分析处理(online analytical processing,简称OLAP,主要是多维分析)、统计分析、数据挖掘等。有些分析处理需要对数据集进行多次的扫描,分析查询执行的时间以分钟或者小时计。与普通行存储模式不同,一些学者提出了列存储模式(columnar storage model)。列存储模型有行存储没有的优势特征,当查询只涉及关系的某些数据列时,不会造成无关数据的提取,减少I/O操作,提高了查询的效率。围绕RDBMS,形成了一个完整的生态体系(厂家、技术、产品、服务等),提供了包括数据采集、数据管理、数据查询与分析、数据展现(即可视化)等技术和产品,创造了巨大的数据库产业,为社会发展做出了巨大贡献。
2.1.3 关系数据库的不足
大数据时代的到来,关系型数据库并未做好全面的准备,出现了诸多问题,主要问题有以下几个方面:
(1)关系模型不容易组织和管理所有类型多样的数据,例如在关系数据库里,管理大规模的高维时空数据、大规模的图像数据等都显得力不从心。
(2)如何才能通过大量节点的并行操作实现大规模数据的高速处理,仍然值得我们去探索。在关系数据库上进行大规模的事物处理,不但需要解决查询的性能问题,更需要解决修改操作的性能问题,大量的事物处理,需要高效完成,才能保证数据的持久性和可靠性。
(3)在关系数据库上进行数据的复杂分析,能够使用的是统计分析和数据挖掘软件包;现有的统计分析、数据挖掘软件包能够处理的数据量受限于内存开销,并行化程度不高。从数据库中提取数据,注入到分析软件中进行分析,在大数据时代,这样的数据移动以及不合适了。通过数据的划分和并行计算,实现高性能的数据分析成为必然选择。
从中可以得出,现如今的数据管理已经不是简单的关系型数据库可以解决的,关系型数据库在一定程度上只能解决初期的大数据管理。
2.2 NoSQL数据库管理技术
随着时代的发展,传统的关系型数据库已经无法满足人们对于更高的并发读写、海量数据的高效存储和访问以及高扩展性和可用性等需求,出现了NoSQL数据技术。
对于NoSQL技术,学术界有两种对其的解释:(1)“Non-Relational”,也就是非关系型数据库;(2)“Not Only SQL”,即数据库不仅仅是SQL。当前第二种解释比较流行。NoSQL数据库是指数据模型定义不明确的非关系型数据库。NoSQL数据库具有灵活的数据模型、高可扩展性和美好的发展前景。下面主要介绍NoSQL的几种管理技术。
NoSQL数据库普遍采用的数据管理方式有四种:Key-Value存储方式、BigTable存储方式、Document存储方式以及Graph存储方式。2010年Rick Cattell对各种典型NoSQL系统从各个方面做了比较系统的分析。
2.2.1 基于Key-Value存储的NoSQL技术
Key-Value是NoSQL系统比较常用的数据存储方式,每个Key值对应每一个任意类的数据值,对应的对象可以是结构化数据,也可以是文档。Key-Value存储的思想是将抽取唯一可以确定数据的特征属性,作为key,并将作为value对象。基于Key-Value模型组织数据,需要将数据按照Key-Value形式存储,而后可以通过对Key-Value进行序列化排序操作继而存储、将Key-Value存储为字符串或者字节数据,并且对key建立索引以便进行快速查询。Key-Value存储方式的NoSQL系统有的采用的DISK方式存储实现同步数据复制(例如Membase等),有的采用RAM存储数据实现异步数据复制(例如Redis等)。
Jing Han等人基于Key-Value存储提出了CDSA(Cloud Data Storage Architecture),体系结构可以较好优化云计算过程中的数据查询,同时也保证了海量数据的存储。CSDA包括三层:DCL(DataCache Layer)、MDL(Memory Database Layer)、DDL(Disk Database Layer)。
2.2.2 基于BigTable存储的NoSQL技术
BigTable管理方式是Google提出来并广泛采用的存储方式,而且也被HBase、HyperTabley以及Cassandra等系统借鉴使用。在BigTable存储中,同样是通过Key-Value基础模型对数据进行建模,不一样的是Value具有了比较精巧的结构,即一个Value包含多个列,这些列还能进行分组(column family),表现出了多层嵌套映射的数据结构特点。HBase是受BigTable启发而开发的基于Column Family存储的NoSQL技术。Hbase提供系统的SQL查询接口,用户可以轻松的对数据进行管理工作。Cassandra技术也是受到BigTable的启发,只不过Cassandra做了大幅度的修改。Cassandra在Column Family下加入了超级列(super column)概念层次的映射关系,方便对数据进行建模。Cassandra还可以将多个Column Family在磁盘存储在一起,这样就可以在同时访问时提高效率。
2.2.3 基于Document存储的NoSQL技术
基于Document(文档)存储的技术以及发展很久了,例如IBM的Lotus Notes。这里所说的基于Document存储的NoSQL技术是基于传统文档存储技术的新发展、新技术。基于Document存储技术仍是以Key-Value存储模型为基本模型,此模型可以对文档的历史版本进行追踪,单个文档又是一个Key-Value的列表,形成循环嵌套的结构,对于某些特定的查询方式来说,Document存储的效率更高。因为其数据的循环嵌套的结构特点,应用程序可能会越来越复杂并且难以维护和理解。主要的技术和产品有CouchDB, MongoDB和Dynamo。
2.2.4 基于Graph存储的NoSQL技术
基于Graph存储的系统包括Ne04J, InfoGrid,Hyper Graph DB等。有些图数据库是基于面向对象数据库创建的,例如Infnite Graph,在节点的遍历等图数据的操作中,展现出了高效的性能。Graph存储方式是将整个数据集建模成一个大型的网络结构,之后再采用一系列图操作实现对数据的操作。由于图由结点和边构成,对于海量数据不能完全装入内存,因此,Graph存储方式一般是基于DISK的,NoSQL系统实现图索引,完成图的调入调出。
从数据管理的角度来看,使用非结构化Key-Value存储管理结构化大数据仍然是顺应应用需求的。因为基于Key-Value存储的Hadoop数据仓库实现技术尚处于起步阶段,需要其他数据库技术来加速器发展进程。
2.2.5 NoSQL的不足
与传统的关系型数据库相比,NoSQL非关系型数据库在并行处理方面有一定优势,但也是存在一些问题,主要体现在:
( 1) NoSQL很难实现数据的完整性
由于NoSQL项目中很难实现数据的完整性,而在企业中数据完整性又是必不可少的。因此,在企业中,NoSQL的应用还不是很广泛。
(2)成熟度不高
大部分的NoSQL数据库都是开源项目,没有世界级的数据库厂商提供完整的服务,出现问题,都是自己解决,风险较大。
(3)关系数据库比NoSQL在设计时更能够体现实际,而NoSQL数据库缺乏这种关系,难以体现业务的实际情况,对于数据库的设计与维护都增加了难度。
2.3 关系数据库和NoSQL数据库的区别
传统的关系数据库与NoSQL数据库在数据管理系统发展不同的时间段里都体现出了自己的可用性和实用性,能够解决的一定的问题。表格l将两者进行了对比。
3 数据管理方式的展望
通过上述研究分析可以看出,关系数据库已经无法满足现阶段即大数据时代人们对于数据存储和管理的需求,更高的存储效率和更快的查询速度等一系列高要求,促使数据管理方式不断向前发展。NoSQL技术在一定程度上解决了大数据时代的数据管理需求,但仍需采用新技术提高数据库的一致性和可用性。关系数据库主要优点表现在其属性值之间可以通过SQL操作进行关联操作,体现出了数据的完整性,NoSQL数据库将数据进行分布式存储,为之后的大数据处理作铺垫。关系数据库的ACID强调数据一致性通常指的是关联数据之间的逻辑关系是否正确和完整,而对于很多互联网应用来说,对一致性和隔离性的要求可以降低,而可用性的要求则更为明显。关系数据库和NoSQL数据库并不是对立的矛盾体,而是可以相互补充的,可以根据不同的需求使用不同的技术,各取所需,甚至可以共同存在,互不影响。
目前大数据的应用领域还是主要以民用为主,以电信通信为例,客户之间通信传输过程中产生海量数据,将这些海量数据进行实时存储,再利用大数据方法提取有效信息,形成整套的数据管理与分析的流程。在电信.气象、企业等领域大数据管理与分析已经有比较成熟的思路和解决方法。在航天试验领域,空间飞行器执行任务可以产生海量数据,包括飞行器自身载荷数据,以及试验任务数据,这些数据的类型多样、数据量大,随着试验任务的频率和在轨航天器数量的增大,数据管理问题日益凸显,采用大数据管理的思维解决航天试验任务中数据管理问题,是未来航天试验任务数据存储和分析的必然趋势。
4 结论
大数据时代已经向我们走来,数据管理技术已经进入了新的阶段。本文研究分析了数据管理技术的发展进程,分析了关系数据库和NoSQL数据库,并且进行了对比区分。最后,对大数据未来的管理方式作出了展望。关系数据库和NoSQL数据库系统是随着人们对于数据管理的需求产生和发展的,在不同的数据管理发展阶段,根据需要对其进行分析的数据特点,选择适当的数据管理方式,帮助人们解决了一定的问题和需求。
作者:马凯航 高永明 吴止锾 李磊 来源:软件 2015年10期