数据仓库的产生和发展
----计算机系统的功能从数值计算扩展到数据管理距今已有三十多年了。最初的数据管理形式主要是文件系统,少量的以数据片段之间增加一些关联和语义而构成层次型或网状数据库,但数据的访问必须依赖于特定的程序,数据的存取方式是固定的、死板的。到了1969年,E.F.Codd博士发表了他著名的关系数据模型的论文。此后,关系数据库的出现开创了数据管理的一个新时代。
----二十多年来,大量新技术、新思路涌现出来并被用于关系数据库系统的开发和实现:客户/服务器体系结构、存储过程、多线索并发内核、异步I/O、代价优化,等等,这一切足以使得关系数据库系统的处理能力毫不逊色于传统封闭的数据库系统。而关系数据库在访问逻辑和应用上所带来的好处则远远不止这些,SQL的使用已成为一个不可阻挡的潮流,加上近些年来计算机硬件的处理能力呈数量级的递增,关系数据库最终成为联机事务处理系统的主宰。整个80年代直到90年代初,联机事务处理一直是数据库应用的主流。然而,应用在不断地进步。当联机事务处理系统应用到一定阶段的时候,企业家们便发现单靠拥有联机事务处理系统已经不足以获得市场竞争的优势,他们需要对其自身业务的运作以及整个市场相关行业的态势进行分析,而做出有利的决策。这种决策需要对大量的业务数据包括历史业务数据进行分析才能得到。在如今这样激烈的市场竞争环境下,这种基于业务数据的决策分析,我们把它称之为联机分析处理,比以往任何时候都显得更为重要。如果说传统联机事务处理强调的是更新数据库--向数据库中添加信息,那么联机分析处理就是从数据库中获取信息、利用信息。因此,著名的数据仓库专家RalphKimball写道:“我们花了二十多年的时间将数据放入数据库,如今是该将它们拿出来的时候了。”
----事实上,将大量的业务数据应用于分析和统计原本是一个非常简单和自然的想法。但在实际的操作中,人们却发现要获得有用的信息并非如想像的那么容易:第一,所有联机事务处理强调的是密集的数据更新处理性能和系统的可靠性,并不关心数据查询的方便与快捷。联机分析和事务处理对系统的要求不同,同一个数据库在理论上都难以做到两全;第二,业务数据往往被存放于分散的异构环境中,不易统一查询访问,而且还有大量的历史数据处于脱机状态,形同虚设;第三,业务数据的模式针对事务处理系统而设计,数据的格式和描述方式并不适合非计算机专业人员进行业务上的分析和统计。因此有人感叹:20年前查询不到数据是因为数据太少了,而今天查询不到数据是因为数据太多了。针对这一问题,人们设想专门为业务的统计分析建立一个数据中心,它的数据从联机的事务处理系统中来、从异构的外部数据源来、从脱机的历史业务数据中来……这个数据中心是一个联机的系统,它是专门为分析统计和决策支持应用服务的,通过它可满足决策支持和联机分析应用所要求的一切。这个数据中心就叫做数据仓库。这个概念在90年代初被提出来,如果需要给数据仓库一个定义的话,那么数据仓库就是一个作为决策支持系统和联机分析应用数据源的结构化数据环境。数据仓库所要研究和解决的问题就是从数据库中获取信息的问题。
----那么数据仓库与数据库(主要指关系数据库)又是什么关系呢?回想当初,人们固守封闭式系统是出于对事务处理的偏爱,人们选择关系数据库是为了方便地获得信息。我们只要翻开C.J.Date博士的经典之作《AnIntroductiontoDatabaseSystems》便会发现:今天数据仓库所要提供的正是当年关系数据库要所倡导的。然而,“成也萧何、败也萧何”,由于关系数据库系统在联机事务处理应用中获得的巨大成功,使得人们已不知不觉将它划归事务处理的范畴;过多地关注于事务处理能力的提高,使得关系数据库在面对联机分析应用时又显得“老革命遇到新问题”--今天的数据仓库对关系数据库的联机分析能力提出了更高的要求,采用普通关系型数据库作为数据仓库在功能和性能上都是不够的,它们必须有专门的改进。因此,数据仓库与数据库的区别不仅仅表现在应用的方法和目的方面,同时也涉及到产品和配置上的不同。
----以辨证的眼光来看,数据仓库的兴起实际上是数据管理的一种回归,是螺旋式的上升。今天的数据库就好比当年的层次数据库和网型数据库,它们面向事务处理;今天的数据仓库就好比是当年的关系数据库,它针对联机分析。所不同的是,今天的数据仓库不必再为联机事务处理的特性而无谓奔忙,由于技术的专业化,它可更专心于联机分析领域的发展和探索。
----从厂商的角度看,经过长期发展,联机事务处理系统的市场至90年代中期出现饱和迹象,其增长速度明显减慢。这导致各大数据库厂商的传统业务增长面临严峻挑战,寻求新的业务增长点成为他们的当务之急。数据仓库的兴起无疑为数据库产品创造了巨大的市场,它将成为本世纪末到下世纪初数据库市场的一个新的增长点。因此,数据仓库的概念一开始便伴随着浓烈的市场炒作。对于广大用户来说,只有从自身应用需求出发,破除技术和概念的神秘性,避虚就实,密切关注技术发展的方向,方可获得满意的产品、解决方案和经济效益。
----数据仓库的概念一经出现,就首先被应用于金融、电信、保险等主要传统数据处理密集型行业。国外许多大型的数据仓库在1996~1997年建立。那么,什么样的行业最需要和可能建立数据仓库呢?有两个基本条件:第一,该行业有较为成熟的联机事务处理系统,它为数据仓库提供客观条件;第二,该行业面临市场竞争的压力,它为数据仓库的建立提供外在的动力。
数据仓库的关键技术
----那么,数据仓库都有哪些组成部分和关键技术呢?与关系数据库不同,数据仓库并没有严格的数学理论基础,它更偏向于工程。由于数据仓库的这种工程性,因而在技术上可以根据它的工作过程分为:数据的抽取、存储和管理、数据的表现以及数据仓库设计的技术咨询四个方面。在此,我们将分别讨论每一个环节。
----1.数据的抽取
----数据的抽取是数据进入仓库的入口。由于数据仓库是一个独立的数据环境,它需要通过抽取过程将数据从联机事务处理系统、外部数据源、脱机的数据存储介质中导入数据仓库。数据抽取在技术上主要涉及互连、复制、增量、转换、调度和监控等几个方面。数据仓库的数据并不要求与联机事务处理系统保持实时的同步,因此数据抽取可以定时进行,但多个抽取操作执行的时间、相互的顺序、成败对数据仓库中信息的有效性则至关重要。
----在技术发展上,数据抽取所涉及的单个技术环节都已相对成熟,其中有一些是躲不开编程的,但整体的集成度还很不够。目前市面上所提供的大多是数据抽取工具。这些工具通过用户选定源数据和目标数据的对应关系,会自动生成数据抽取的代码。但抽取工具支持的数据种类是有限的;同时数据抽取过程涉及数据的转换,它是一个与实际应用密切相关的部分,其复杂性使得不可嵌入用户编程的抽取工具往往不能满足要求。因此,实际的数据仓库实施过程中往往不一定使用抽取工具。整个抽取过程能否因工具的使用而纳入有效的管理、调度和维护则更为重要。从市场发展来看,以数据抽取、异构互连产品为主项的数据仓库厂商一般都很有可能被其他拥有数据库产品的公司吞并。在数据仓库的世界里,它们只能成为辅助的角色。
----2.存储和管理
----数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库的特性,同时也决定了其对外部数据表现形式。要决定采用什么产品和技术来建立数据仓库核心,则需要从数据仓库的技术特点着手分析。
----数据仓库遇到的第一个问题是对大量数据的存储和管理。这里所涉及的数据量比传统事务处理大得多,且随时间的推移而累积。从现有技术和产品来看,只有关系数据库系统能够担当此任。关系数据库经过近30年的发展,在数据存储和管理方面已经非常成熟,非其他数据管理系统可比。目前不少关系数据库系统已支持数据分割技术,能够将一个大的数据库表分散在多个物理存储设备中,进一步增强了系统管理大数据量的扩展能力。采用关系数据库管理数百个GB甚至到TB的数据已是一件平常的事情。一些厂商还专门考虑大数据量的系统备份问题,好在数据仓库对联机备份的要求并不高。
----数据仓库要解决的第二个问题是并行处理。在传统联机事务处理应用中,用户访问系统的特点是短小而密集;对于一个多处理机系统来说,能够将用户的请求进行均衡分担是关键,这便是并发操作。而在数据仓库系统中,用户访问系统的特点是庞大而稀疏,每一个查询和统计都很复杂,但访问的频率并不是很高。此时系统需要有能力将所有的处理机调动起来为这一个复杂的查询请求服务,将该请求并行处理。因此,并行处理技术在数据仓库中比以往更加重要。大家可以注意一下,在针对数据仓库的TPC-D基准测试中,比以往增加了一个单用户环境的测试,称为“系统功力”(QppD)。系统的并行处理能力对QppD的值有重要影响。目前,关系数据库系统在并行处理方面已能做到对查询语句的分解并行、基于数据分割的并行、以及支持跨平台多处理机的群集环境和MPP环境,能够支持多达上百个处理机的硬件系统并保持性能的扩展能力。
----数据仓库的第三个问题是针对决策支持查询的优化。这个问题主要针对关系数据库而言,因为其他数据管理环境连基本的通用查询能力还不完善。在技术上,针对决策支持的优化涉及数据库系统的索引机制、查询优化器、连接策略、数据排序和采样等诸多部分。普通关系数据库采用B树类的索引,对于性别、年龄、地区等具有大量重复值的字段几乎没有效果。而扩充的关系数据库则引入了位图索引的机制,以二进制位表示字段的状态,将查询过程变为筛选过程,单个计算机的基本操作便可筛选多条记录。由于数据仓库中各数据表的数据量往往极不均匀,普通查询优化器所得出的最佳查询路径可能不是最优的。因此,面向决策支持的关系数据库在查询优化器上也做了改进,同时根据索引的使用特性增加了多重索引扫描的能力。以关系数据库建立的数据仓库在应用时会遇到大量的表间连接操作,而连接操作对于关系数据库来说是一件耗时的事儿。扩充的关系库中对连接操作可以做预先的定义,我们称之为连接索引,使得数据库在执行查询时可直接获取数据而不必实施具体的连接操作。数据仓库的查询常常只需要数据库中的部分记录,如最大的前50家客户,等等。普通关系数据库没有提供这样的查询能力,只好将整个表的记录进行排序,从而耗费了大量的时间。决策支持的关系数据库在此做了改进,提供了这一功能。此外,数据仓库的查询并不需要像事务处理系统那样精确,但在大容量数据环境中需要有足够短的系统相应时间。因此,一些数据库系统增加了采样数据的查询能力,在精确度允许的范围内,大幅度提高系统查询效率。总之,将普通关系数据库改造成适合担当数据仓库的服务器有许多工作可以做,它已成为关系数据库技术的一个重要研究课题和发展方向。可见,对于决策支持的扩充是传统关系数据库进入数据仓库市场的重要技术措施。
----数据仓库的第四个问题是支持多维分析的查询模式,这也是关系数据库在数据仓库领域遇到的最严峻的挑战之一。用户在使用数据仓库时的访问方式与传统关系数据库有很大的不同。对于数据仓库的访问往往不是简单的表和记录的查询,而是基于用户业务的分析模式,即联机分析。如附图所示,它的特点是将数据想像成多维的立方体,用户的查询便相当于在其中的部分维(棱)上施加条件,对立方体进行切片、分割,得到的结果则是数值的矩阵或向量,并将其制成图表或输入数理统计的算法。
----关系数据库本身没有提供这种多维分析的查询功能,而且在数据仓库发展的早期,人们发现采用关系数据库去实现这种多维查询模式非常低效、查询处理的过程也难以自动化。为此,人们提出了多维数据库的概念。多维数据库是一种以多维数据存储形式来组织数据的数据管理系统,它不是关系型数据库,在使用时需要将数据从关系数据库中转载到多维数据库中方可访问。采用多维数据库实现的联机分析应用我们称之为MOLAP。多维数据库在针对小型的多维分析应用有较好的效果,但它缺少关系数据库所拥有的并行处理及大规模数据管理扩展性,因此难以承担大型数据仓库应用。这样的状态直到“星型模式”在关系数据库设计中得到广泛应用才彻底改变。几年前,数据仓库专家们发现,关系数据库若采用“星型模式”来组织数据就能很好地解决多维分析的问题。“星型模式”只不过是数据库设计中数据表之间的一种关联形式,它的巧妙之处在于能够找到一个固定的算法,将用户的多维查询请求转换成针对该数据模式的标准SQL语句,而且该语句是最优化的。“星型模式”的应用为关系数据库在数据仓库领域大开绿灯。采用关系数据库实现的联机分析应用称为ROLAP。目前,大多数厂商提供的数据仓库解决方案都采用ROLAP。
----在数据仓库的数据存储管理领域,从当今的技术发展来看,面向决策支持扩充的并行关系数据库将是数据仓库的核心。在市场上,数据库厂商将成为数据仓库的中坚力量。
----3.数据的表现
----数据表现是数据仓库的门面。这是一个工具厂商的天下。它们主要集中在多维分析、数理统计和数据挖掘方面。
----多维分析是数据仓库的重要表现形式,由于MOLAP系统是专用的,因此,关于多维分析领域的工具和产品大多是ROLAP工具。这些产品近两年来更加注重提供基于Web的前端联机分析界面,而不仅仅是网上数据的发布。
----数理统计原本与数据仓库没有直接的联系,但在实际的应用中,客户需要通过对数据的统计来验证他们对某些事物的假设,以进行决策。与数理统计相似,数据挖掘与数据仓库也没有直接联系。而且这个概念在现实中有些含混。数据挖掘强调的不仅仅是验证人们对数据特性的假设,而且它更要主动地寻找并发现蕴藏在数据之中的规律。这听起来虽然很吸引人,但在实现上却有很大的出入。市场上许多数据挖掘工具其实不过是数理统计的应用。它们并不是真正寻找出数据的规律,而是验证尽可能多的假设,其中包括许多毫无意义的组合,最后由人来判断其合理性。因此,在当前的数据仓库应用中,有效地利用数理统计就已经能够获得可观的效益。
----4.数据仓库设计的技术咨询
----在数据仓库的实施过程中,有一些更为基本的问题需要解答。它们包括:数据仓库提供哪些部门使用?不同的部门怎样发挥数据仓库的决策效益?数据仓库需要存放哪些数据?这些数据以什么样的结构存放?数据从哪里装载?装载的频率多少为合适?需要购置哪些数据管理的产品和工具来建立数据仓库?等等。这些问题依赖于特定的数据仓库系统,属于技术咨询的范畴。
----事实上,数据仓库绝不是简单的产品堆砌,它是综合性的解决方案和系统工程。在数据仓库的实施过程中,技术咨询服务至关重要,是一个不可缺少的部分,它甚至于比购买产品更为重要。目前,数据仓库的技术咨询主要来自数据仓库软件产品的供应商和独立的针对数据仓库技术的咨询公司。
主流厂商及产品
----作为数据管理市场的热点,近年来有很多公司投入数据仓库市场的角逐。在此,我们将选择介绍其中一部分厂商。首先,它们是为中国市场所熟悉的,其产品能够容易买到。其次,我们主要选择软件厂商。第三,这些厂商分为两大类,一类是拥有数据库产品背景的,它们将是数据仓库市场的中坚力量;另一类是工具产品厂商,提供数据仓库解决方案中的外围工具(在此不多介绍)。
----数据管理类厂商中主要有(字母排序):IBM,Informix,Microsoft,NCR,Oracle,Sybase等。
----■IBM
----作为数据仓库领域中的一支劲旅,IBM是一家同时拥有硬件和软件的厂商。在数据仓库技术领域,IBM最注目的是其SP/2的MPP硬件环境。近年来,它以开放系统管理了大量超过TB容量的数据仓库。由于封闭的主机系统一时难以成为数据仓库中心系统的主流,SP/2等开放的MPP环境必然成为主宰。相比之下,IBM的数据库软件表现平常,其数据仓库核心采用的是DB2UniversalServer(简称UDB)的ParallelEdition。IBM的优势在于业界的声誉、市场份额、硬件系统和咨询服务。
----■Informix
----Informix是一家专业的数据库厂商,其关系数据库服务器DynamicServer在传统联机事务处理应用中始终占据着稳定而广泛的市场份额。近年来,数据仓库成为该公司重要的发展领域之一。在数据仓库技术上,Informix主要关注在这么几个方面:第一,并行处理的数据库服务器。Informix的ExtendedParallelServer(XPS)专为企业级决策支持系统而设计,采用非共享技术支持群集系统和MPP环境,能够提供近线性的性能扩展能力。第二,在并行关系数据库的基础上,Informix增加了针对决策支持操作的扩展。第三,Informix提供了MetaCubeOLAP中间件,以多层客户/服务器结构实现ROLAP解决方案,并在其中集成了基于汇总和采样的查询优化机制。
----1998年底,著名的数据仓库供应商RedBrick并入了Informix,增强了它在数据抽取、数据挖掘以及在行业顾问咨询方面的实力。目前,Informix将数据仓库看成产品和服务的集合,将整体解决方案命名为DecisionFrontier。
----■Microsoft
----微软是以其关系数据库SQLServer作为它数据仓库核心的。在数据仓库领域,微软的计划是将Plato(一个OLAP服务器)和DataTransformationServices(数据转换服务,包括数据抽取、转换和装载能力)作为其SQLServer7.0数据库的免费组成部分。微软的OLAP走的是ROLAP的路子,与其数据转换一样,属于常规的解决方案;而并行处理和决策支持扩展则不是SQLServer的强项。因此,整个解决方案仍面向中低端,价格取胜是关键。
----为此,微软在数据仓库市场中倡导了另一个概念--数据集市(DataMart)。所谓数据集市就是一个面向部门应用的、小型的数据仓库;所采用的技术与数据仓库相似,但存储的内容更加专题化。对于数据集市这样的规模,微软的解决方案便可成为理想的选择。
----■NCR
----NCR是数据仓库的先驱之一,具有强大的以业务为中心的顾问咨询力量,在传统数据仓库领域有很大的市场。NCR的数据仓库产品名为TeradataScalableWarehouse,取超大规模数据之意,面向高端数据仓库市场。NCR的Teradata并非一个开放的数据库系统,它专为数据仓库领域而设计的。但在有关数据仓库性能的TPC-D测试中,Teradata的表现却很平常,它需要更多的并行处理机。Teradata运行的平台主要是MPP环境,操作系统也是NCR自己的,直到最近才支持Unix和NT。
----NCR是专注于高端数据仓库的厂商,其Teradata在大规模系统和数据量下表现良好。但它的解决方案也面临着挑战:联机多维分析是它的弱项。
----■Oracle
----Oracle公司早先在数据仓库上的研究集中在OLAP多维分析上。数年前,Oracle收购了名为IRI的多维数据库厂商,推出Express多维数据库,以MOLAP模式提供了联机分析的解决方案。随着近年来ROLAP的解决方案渐渐成为主流,在Oracle最新推出的数据仓库解决方案--OracleDataMartSuite中Oracle以Oracle8EnterpriseServer为数据仓库服务器。
----■Sybase
----早在1994年推广System10的时候,Sybase便在数据库的大规模并行联机备份、数据复制、异构数据库互连等方面做了大量工作。在核心领域,Sybase专门为MPP环境设计了NavigationServer,与SQLServer配合构成大规模并行处理环境。1995年初,Sybase通过收购ExpressWay,推出了第一个与大型关系数据库结合的位图索引机制--SybaseIQ。目前,Sybase推出的数据仓库解决方案名叫SybaseWarehouseStudio,其中有通过SybaseIQ加强的AdaptiveServer,以及Power系列的设计、转换、OLAP工具。但在实际的应用解决方案中,由于市场的原因,Sybase往往需要借用第三方的工具。
数据仓库未来发展方向
----数据仓库是数据管理技术和市场上一个方兴未艾的领域,有着良好的发展前景。在此,我们将从技术、应用、市场等几个方面探讨数据仓库的未来发展。
----数据仓库技术的发展自然包括数据抽取、存储管理、数据表现和方法论等方面。在数据抽取方面,未来的技术发展将集中在系统集成化方面。它将互连、转换、复制、调度、监控纳入标准化的统一管理,以适应数据仓库本身或数据源可能的变化,使系统更便于管理和维护。在数据管理方面,未来的发展将使数据库厂商明确推出数据仓库引擎,作为服务器产品与数据库服务器并驾齐驱。在这一方面,带有决策支持扩展的并行关系数据库将最具发展潜力。在数据表现方面,数理统计的算法和功能将普遍集成到联机分析产品中,同时与Internet/Web技术紧密结合,推出适用于Intranet、终端免维护的数据仓库访问前端。在这个方面,按行业应用特征细化的数据仓库用户前端软件将成为产品作为数据仓库解决方案的一部分。数据仓库实现过程的方法论将更加普及,将成为数据库设计的一个明确分支,成为管理信息系统设计的必备。
----计算机应用发展的数据仓库倾向是数据仓库发展的推动力。传统的联机事务处理系统并不单独考虑数据仓库,但实际应用对数据仓库所能提供的功能却早有需求。因此,许多事务处理系统近年来陷入一个两难的境地:在现有系统上增加有限的联机分析功能,包括复杂的报表和数据汇总操作;一方面严重影响了事务处理联机性能,另一方面统计分析又因系统结构上的种种限制而不能充分体现。其结果是:应用技术的发展是朝着更加细化,更加专业的方向。在新一代的应用系统中,数据仓库在一开始便被纳入系统设计的考虑,联机分析应用于普遍的事务处理系统之中。在数据管理上,联机事务处理和数据仓库在应用中相对独立,使联机事务处理系统本身更加简洁高效,同时分析统计也更为便利。面向行业的数理统计学向更为普遍的应用发展,并集成到应用系统的数据仓库解决方案中。它们将立足于数据仓库提供的丰富信息,更好地为业务决策服务。
----在市场上,我们将从厂商和用户两个方面看数据仓库的发展。对于提供数据仓库产品和解决方案的厂商来说,严酷的市场竞争是永恒的主题。未来的发展将是不提供完整解决方案的厂商可能被其他公司收购,例如从事数据抽取、提供专用工具的软件公司很可能并入大型数据库厂商而去构建完整的解决方案。能够持续发展的厂商大致有两类:一是拥有强大的数据库、数据管理背景的公司;二是专门提供面向具体行业的、关于数据仓库实施的技术咨询的公司。
----从用户的角度看,数据管理的传统领域,如金融、保险、电信等行业中的特定应用,如信用分析、风险分析、欺诈检测等,是数据仓库的主要市场之外,数据仓库的应用随着现代社会商业模式的变革而进一步普及和深入。近年来,一场悄悄的革命正在改变产品制造和提供服务的方式,它就是数字化定制经济模式。在这个世界里,用户可以购买一台根据自己要求组装的计算机、一条根据自己体形设计的牛仔裤、一种根据自己身体需要而生产的保健药、一副与自己脸型相配的眼镜……,大规模的定制不仅是一种制造过程、后勤系统、或者推销策略,它很可能成为下一世纪企业生产的组织原则,就像成批生产是本世纪的组织原则一样。在未来大规模定制经济环境下,数据仓库将成为企业获得竞争优势的关键武器。
----总之,数据仓库是一项基于数据管理和利用的综合性技术和解决方案,它将成为数据库市场的新一轮增长点,同时也成为下一代应用系统的重要组成部分。数据仓库对于广大计算机用户,包括中国用户,并不遥远;它看得见、摸得着、买得到。数据仓库技术其实也不神秘,至少比绝大多数统计学定理来得简单。相信大家必能在数据仓库的实施和使用中获得满意的效果。