浅谈海量数据处理技术研究
2009-07-16何芳原
何芳原
[摘要]随着科学技术飞速的发展,经济和社会都取得了极大的进步,与此同时,计算机应用系统的不断发展和完善,在各个领域产生了大量的历史数据,这些历史数据可能已经不被应用系统引用,但它们却有着非常大的查询和分析价值。对海量的信息加以利用都离不开底层对数据的操作。然而,数据不断膨胀往往给应用系统带来一些难以忍受的后果,最典型的是系统在运行过程中资源消耗需求量越来越大,运行效率明显降低,随着时间的推移,达到难以忍受的程度。提出对于海量数据查询效率问题的一种解决方案,主要探讨海量数据在关系数据库中的应用。
[关键词]海量数据 数据处理 关系数据库
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0420059-02
一、海量数据的产生及现状
在这被称之为信息爆炸的时代,信息过量几乎成为人人需要面对的问题。如何才能不被信息的汪洋大海所淹没,从中及时发现有用的知识,提高信息利用率呢?要想使数据真正成为一个公司的资源,只有充分利用它为公司自身的业务决策和战略发展服务才行,否则大量的数据可能成为包袱,甚至成为垃圾。在信息技术飞速发展,信息数据迅猛增长的今天,企业快速有效的分析决策越来越依赖于其信息系统的设计开发。因此,面对“数据爆炸但知识贫乏”的挑战,数据挖掘和知识发现(DMKD)技术应运而生,并得以蓬勃发展,越来越显示出其强大的生命力,数据挖掘技术可以用它的超能力产生巨大的商业机会。
数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程,就是从存放在数据库、数据仓库或其他信息库中的大量数据中挖掘有趣知识的过程。还有很多和这一术语相近似的术语,如从数据库中发现知识(KDD)、数据分析、数据融合(Data Fusion)以及决策支持等。人们把原始数据看作是形成知识的源泉,就像从矿石中采矿一样。原始数据可以是结构化的,如关系型数据库中的数据,也可以是半结构化的,如文本、图形、图像数据,甚至是分布在网络上的异构型数据。发现知识的方法可以是数学的,也可以是非数学的;可以是演绎的,也可以是归纳的。发现了的知识可以被用于信息管理、查询优化、决策支持、过程控制等,还可以用于数据自身的维护。因此,数据挖掘是一门广义的交叉学科,它汇聚了不同领域的研究者,尤其是数据库、人工智能、数理统计、可视化、并行计算等方面的学者和工程技术人员。
和数据挖掘同时出现或交互使用的是数据库中的知识发现(KDD)。知识发现是人工智能、机器学习和数据库技术相结合的产物。“知识发现”(Knowledge Discovery in Databases, KDD)一词是1989年在美国底特律市召开的第一届KDD国际学术会议上正式形成的。知识发现是指从数据库大量的数据中通过分析提取出隐含的新颖的、有效的并能被人理解的规则或模式的高级处理过程。这里的规则或模式即我们所说的知识。它给出数据的某些特性或数据之间的关系,是对数据处理后获取的更深层次的可利用决策支持的信息。数据挖掘只是数据库中知识发现的一个步骤,但又是最重要的一步。一般在研究领域被称作数据库中知识发现的,在工程领域则称之为数据挖掘。
二、海量数据查询的问题
只要是对海量的信息加以利用,不论是数据挖掘也好,知识发现也好,数据仓库也好,都离不开底层对数据的操作。然而对于大多数的数据中心来讲,数据膨胀的压力是巨大的。数据不断膨胀往往给应用系统带来一些难以忍受的后果,最典型的是系统在运行过程中资源消耗需求量越来越大,运行效率明显降低,随着时间的推移,达到难以忍受的程度。于是,针对于海量数据,人们提出了各种解决办法。
三、海量数据的存储与访问
产生海量数据、访问海量数据、存储海量数据和保护海量数据的网络存储系统,因其在数据使用、管理、存储、备份和复制等方面的先进性,越来越为广大企业所推崇和认可。所以,许多企业在组建企业网络时,都将根据自己网络信息处理和运用的特点,配有技术先进、性能优异、容量巨大、速度迅捷,且安全可靠和维护方便的网络存储设备。目前,在网络系统存储备份设备中,应用最广泛的,仍然是磁盘阵列、磁带库和光盘塔或光盘库几大类。其中,磁带库、磁盘阵列、光盘塔或光盘库等存储设备因其信息存储特点的完全不同,应用环境也有较大区别。其中,磁带库更多的是用于网络系统中的海量数据的定期备份,而磁盘阵列则主要用于网络系统中的海量数据的即时存取,光盘塔或光盘库主要用于网络系统中的海量数据的访问。
利用先进的数据库管理技术和大容量存储管理技术,综合考虑数据的查询频度的需求,将数据按照近期、中期、远期三个阶段进行分级存储管理:将时间较近、访问频繁的数据存储在磁盘阵列中,提供高速的访问响应;将时间较远、访问较少的数据存储在低成本、大容量、易扩展的光盘库设备中,在保证合理响应速度的前提下尽量降低系统成本。为了实现上述目标,系统提供了对磁盘、光盘数据的一致性访问接口,对系统中的数据提供统一、透明的访问机制;系统同时提供了数据迁移的内部管理机制,保证数据从磁盘迁移到光盘时对用户的透明性。
对海量数据的访问,比较原始的做法是,由技术人员将已备至磁带的数据倒回数据库,根据要求查找记录。此种查询方式基本由手工完成,效率极低,同时造成巨大的人工浪费。加上查询范围及时间跨度有限,无法充分利用历史数据这一重要资源。因此许多用户产生了这样的希望:在生产系统之外建立一个独立的历史数据归档和查询系统,将生产系统数据库内的历史数据自动归档,将历史数据从主机分离开来,从而使主机在必要时可以将历史数据剥离,轻装前进。同时保证历史数据脱离主机后仍能使用,即脱离主机和数据库后,仍可直接访问。这就意味着归档后的历史数据的存储结构应该是可用的(accessible),并且是可查询的(query ready)。
四、海量数据的数据库处理技术
目前,关系数据库的应用范围最广,占据了数据库主流地位。关系数据库最初设计为基于主机/终端方式的大型机上的应用,其应用范围较为有限,随着客户机/服务器方式的流行和应用向客户机方的分解,关系数据库又经历了客户机/服务器时代,并获得了极大的发展。随着Internet应用的普及,由于Internet上信息资源的复杂性和不规范性,关系数据库初期在开发各种网上应用时显得力不从心,表现在无法管理各种网上的复杂的文档型和多媒体型数据资源,后来关系数据库对于这些需求作出了一些适应性调整,如增加数据库的面向对象成分以增加处理多种复杂数据类型的能力,增加各种中间件(主要包括CGI、ISAPI、ODBC、JDBC、ASP等技术)以扩展基于Internet应用能力,通过应用服务器解释执行各种HTML中嵌入脚本来解决Internet应用中数据库数据的显示、维护、输出以及到HTML的格式转换等。此时关系数据库的基于Internet应用的模式典型表现为一种三层或四层的多层结构。在这种多层结构体系下,关系数据库解决了数据库的Internet应用的方法问题,使得基于关系数据库能够开发各种网上数据库数据的发布、检索、维护、数据管理等一般性应用。
首先,从关系数据库结构来分析查询的内部处理。
从组织结构上来看,关系数据库都是由集合组成:数据库是表的集合,表是元组的集合。一个表就是一个关系,对关系的操作有选择、投影、连接。所以我们的查询操作其实就是关系操作。
目前计算机能处理的数据信息大体可以分为两类:一类是结构化数据,如数字、符号等;另一类是非结构化数据,如图像、声音和网页等。对于结构化数据,数据库存储技术发展到今天,关系型数据库已经成为处理结构化数据的首选产品,而且关系型数据库也是距今为止使用得最为广泛的数据存储软件。但是随着网络和软件技术的飞速发展,Internet时代的数据越来越显示出两个最主要的特点,即非结构化数据大量涌现和海量数据的产生。这对数据存储和检索技术提出了完全不同的新需求,集中表现在数据库管理系统本身的存储和检索技术上。特别是随着非结构化数据应用领域的不断拓展,擅长于处埋结构化数据的关系数据库开始暴露出越来越多的局限,这些局限性也集中表现在对海量信息的存储利检索方面。在数据检索方面,海量信息对查询速度有较高的要求,查全率、查准率是衡量检索效率的标准。我们知道,关系数据库的索引是基于B+树的方法,这种方法对海量数据的检索效率是非常低的,甚至几乎不可行。而产生于70年代主要针对数值和字符处理的关系数据库模型由于当时应用的局限,在设计时几乎没有考虑到多媒体、网页等非结构化数据处理的问题,没有料到Internet会发展得如此迅速,没有料到会出现数据急速膨胀的局面。所以,关系数据库在Internet时代的非结构化数据和海量信息数据的处理方面存在着许多问题,特别是关系数据库对数据类型的处理只局限于数字、字符,对非结构化信息的处理只是停留在简单的二进制代码文件的存储,已经不适应用户从原先数据的简单存储上升为对数据的识别、检索和深入加工的要求,基于Internet内容的应用尤其使关系数据库相形见绌,因此有人说,数据库技术将进入“后关系数据库时代”,进入基于网络应用和内容管理的非结构化数据库时代,数据的存储管现技术和检索技术也会随之发生相应的变化,数据库技术与Web技术的结合成为研究的热点。
关系型数据库具有一个基本的规则,即保持事物的分离;它可以处理多个表;存在简单的数据关系,即:一对多、多对多的关系。鉴于其关系模型具有简单、坚实的数学基础的优点,一经提出,立即引起学术界和产业界的广泛重视,从理论与实践两方面对数据库技术产生了强烈的冲击。在关系模型提出之前已经存在的基于层次模型和网状模型的数据库产品很快走向衰败以至消亡,一大批商品化关系数据库系统很快被开发出来并迅速占领了市场,其交替速度之快,是软件开发历史上罕见的。由于数据库是计算机各种应用的基础,关系模型的提出不仅为数据库技术的发展奠定了基础,同时也成为促进计算机普及应用的极大推动力。在考特提出关系模型以后,IBM投巨资开展关系数据库管理系统的研究,其“SystemR”项目的研究成果极大地推动了关系数据库技术的发展,在此基础上推出的DB2和SQL等产品成为IBM的主流产品。System R本身虽作为原型并未问世,但鉴于其影响,ACM把1988年的“软件系统奖”授予了System R开发小组。这一年的软件系统奖还破例同时奖励两个软件,另一个得奖软件也是关系数据库管理系统,即著名的INGRES。
随着技术的进步和市场需求的推动,关系数据库系统的功能越来越强,种类不断增加,其应用领域己多得难以统计,如联机事务处理、联机分析处理、决策支持系统、数据仓库和数据集市等新概念。面向对象的数据性系统及通用数据库系统大多也是在关系系统基础上进行的扩展。Internet时代的到来对传统关系型数据库提出了新的挑战。出于传统的关系数据库主要是为企业内部员工提供服务的,并且主要处理格式化的信息,而对Internet的特殊需求,传统的关系型数据库必须进一步发展,以适应Internet时代的要求,才能生存并发展下去。Internet时代的到来对传统关系型数据库也提供了新的机遇。随着 Internet的普及,信息技术将渗透到普通人生活的方方面面,从而进一步推动IT的发展。随着信息的膨胀,必然会对信息的管理提出更高的要求,将来可能会出现另一种数据库--对象数据库,而关系型数据库作为一种成熟的数据管理平台,仍然会在整个IT系统中占有非常重要的作用,并且仍会平稳地发展。随着各主流厂商的关系型数据库逐步转向Internet,数据库还将迎来一个新的发展高峰。
参考文献:
[1]施伯乐、何继潮、崔靖,关系数据库的理论及应用,河南:河南科学技术出版社.
[2]马垣,关系数据库理论,北京:清华大学出版社,广西:广西科学技术出版社.
[3]徐晓春、李高健,软件配置管理,北京:清华大学出版社,2002.
[4]杨静、顾军华,基于海量数据的数据产品存储技术研究,徐州师范大学学报自然科学版,徐州:徐州师范大学学报自然科学版编辑部,2003,27-29.
[5]陆昌辉、吴晓华,SQL Server 2000核心技术揭秘,北京:宇航出版社.
[6]彭木根,数据仓库技术与实现,北京:电子工业出版社,2002.