1.什么是数据仓库
在W.H.Inmon所著"Building the Data Warehouse"一书中给出了数据仓库的定义:"数据仓库是面向主题的、整合的、稳定的,并且时变的收集数据以支持管理决策的一种数据结构形式。",说的通俗一点:数据仓库技术也就是俗称的分布式数据库加上一种制约条件,而形成的新的数据存储和处理方法。
而这个制约的规则正式本书讨论的重点。
2.从数据库à数据仓库的转变
为什么在有了这么多数据库产品之后,人们又要用数据仓库技术。业界的各路诸侯又如此趋之若鹜。这正是计算机技术应用需求的推动。当年数据库技术大发展的过程是伴随着OLTP(On Line Transaction Process联机业务处理)应用需求的推动。联机业务处理最迫切的技术要求就是快速响应。数据库技术,特别是基于E. F. Codd提出的关系理论的数据库的技术,将数据集分成了甚少冗余的实体(Entity),然后又将它们按一定的关系(Relationship)编织成一个有机的整体,比较完美地满足了OLTP的应用需求。对于每个业务处理最好只须涉及一个实体,业务处理对于实体的Add或Update也只涉及数据媒体的可能最小的空间(如记录级封锁技术),对于其它实体的相关更新通过关系保持了一致性和完整性。这个切合当时OLTP应用实际需求的理论和技术的成功,推动了关系数据库产品风靡世界。呵呵,是不是看得不太明白,没关系,多看几遍就明白了,这个含义是指:将数据按目的、使用频率分类存储,不同的应用访问不同的数据类,还不明白?你太笨了吧!
3.数据仓库是分布式系统中的重要一环
这是一个典型的分布式数据库设计图:
操作型数据
应该注意到,数据仓库并不是分布式系统,它是其中的一部分,但如果明白了数据仓库在其中的地位,那么也就知道了为什么叫数据仓库,而不叫分布式应用系统了。原因很简单,数据仓库是核心,其它的部分都要以它为圆心,最终的结果,便形成了一个类似太阳系的结构。
操作型数据是我们从各种各样的数据源中拿到的各种各样的数据,这是整个系统数据的最原始的状态,从中看到我11月11日打电话的纪录,也可以看到我在15日有什么账单,这个账单的具体内容,甚至还可以看到飞机的起飞和到达时间,如果你明白了这里面放了些什么,那你也就应该能看懂下面的东西。
操作型数据的特点:
1. 实时性:数据几乎都是当前值。
2. 数据源极其丰富,各种来自企业外部和内部产生的数据。
3. 对反应时间的要求很高。(你总不能为了添加一条账单记录等上1个小时吧)
所以由此也可以看出,就算是让我设计一个操作型数据库,也不是很难,:-) 提前说一句,操作型数据的设计遵循:需求à体系结构à完成代码à装入数据。
数据仓库最大特点就是一个“稳”字,先不说它是怎么从操作型数据中提取数据的,单说一说他的数据更新周期最少24小时,你就应该明白;用它的数据是不可能做一个实时性强的东西的,没错,它存在的目的不是让你去做什么有实时性的东西,它是为了让你能够利用从操作型数据库提取的数据作分析和统计工作。知道了么?这一点是很重要的。这也是每一个作DSS(以前称之为MIS)的分析员的追重要的工作,要不怎么叫决策分析系统呢:P
想知道他的好处还是听一听专家的意见吧:直接使用联机业务处理系统中的数据进行决策支持数据的分析处理是会产生许多麻烦的,甚至是实现不了的。这时候,人们就会问为什么系统中有我需要的数据,而我却无法运用呢!这不是说关系数据库不好,而是老产品遇到了新任务。E-R型的数据结构能完美地执行联机业务处理,但不适应较大规模的决策支持数据分析,尤其不适应企业级的决策支持数据分析处理的需要。适应这一需求,应运而生的就是数据仓库技术。
数据仓库的目标是为了制定管理的决策提供支持信息,这显著的与OLTP(联机事务处理)系统的快速响应需要不同。正象企业为了发展要进行业务重组一样,为了支持管理决策需要也要按决策业务科目的要求重组OLTP系统中的数据,并要按不同决策,分析内容分别组织使之方便使用。这种基于主题的模式从用户角度来看就是多重的数据重组结构。
在把数据装载到数据结构重组后的数据仓库之前,先要进行数据转换,或称"整合"处理。这一处理包括几个必不可少的操作步骤,做到使数据完整、统一,这就确保了在使用数据仓库时其中的数据是有质量保证的,对此后文有详述。简而言之,整合就是保证数据准确,到位,没有超出应有的数值范围,没有重复等。
OK!听明白了么?有点复杂么?不要紧,记住一点就行了:数据仓库就是为了给统计分析等工作,专门设计的数据支持,就这么简单,总结一下:
数据仓库:
1. 数据无实时性,更新时间较长。
2. 数据来源是操作型数据,经过一定模式的抽取。
3. 在处理的时候,对事件要求比较宽松。
它的设计可是相对复杂的,但可以肯定的是:数据仓库是按照:数据—〉需求。这也可以理解:巧妇难为无米之炊。你准备了一大堆萝卜可不也就只能作一道“萝卜开会”么!所以,DSS设计的宗旨是:你把我需要的给我,我再告诉你我想要的。听起来是不是挺别扭的。:)
到目前为止,你应该已经对数据仓库有了一个全面而粗浅的认识了,呵呵,下一步就应该是仔细的钻研一下伟大的Building the Data Warehouse啦。
马磊 Wednesday, November 29, 2000