第12章数据仓库技术•12.1从数据库到数据仓库•12.2数据仓库基本概念•12.3数据仓库中的数据组织•12.4数据仓库系统的体系结构•12.5企业的体系化数据环境•12.6创建数据仓库•12.7小结12.1从数据库到数据仓库数据库管理系统作为数据管理的最新手段,成功地用于事务处理领域尽管数据库在事务处理方面的应用获得了巨大的成功。但它对分析处理的支持一直不能令人满意,尤其是当以事务处理为主的OLTP应用与以分析处理为主的DSS应用共存于同一个数据库管理系统中时,这两种类型的处理发生了明显的冲突。12.1从数据库到数据仓库事务处理环境不适宜DSS应用的原因概括起来主要有以下四个方面:(1)事务处理和分析处理的性能特性不同(2)数据集成问题(3)历史数据问题(4)数据的综合问题以上这些问题表明在事务型环境中直接构建分析型应用是一种失败的尝试。数据仓库本质上是对这些存在问题的回答。12.2数据仓库基本概念分析处理和事务处理具有极不相同的性质,因而两者对数据也有着不同的要求。数据仓库概念的创始人W.H.Inmon在其《BuildingDataWarehouse》一书中,列出了操作型数据与分析型数据之间的区别,如表12.1所示。12.2数据仓库基本概念操作型数据分析型数据细节的综合的,或提炼的在存取瞬间是准确的代表过去的数据可更新不更新操作需求事先可知道操作需求事先不知道生命周期符合SDLC完全不同的生命周期对性能要求高对性能要求宽松一个时刻操作一元组一个时刻操作一集合事务驱动分析驱动面向应用面向分析一次操作数据量小一次操作数据量大支持日常操作支持管理决策需求表12.1操作型数据和分析型数据的区别12.2数据仓库基本概念基于上述操作型数据和分析型数据之间的区别,我们可以给出数据仓库定义:数据仓库是一个用以更好地支持企业或组织的决策分析处理的、面向主题的、集成的、不可更新的、随时间不断变化的数据集合。数据仓库本质上和数据库一样是长期储存在计算机内、有组织、可共享的数据集合。12.2数据仓库基本概念数据仓库和数据库主要的区别是数据仓库中的数据具有以下四个基本特征:•数据仓库的数据是面向主题的。•数据仓库的数据是集成的。•数据仓库的数据是不可更新的。•数据仓库的数据是随时间不断变化的。12.2数据仓库基本概念12.2.2主题与面向主题从逻辑意义上讲,主题是企业中某一宏观分析领域所涉及的分析对象。主题是一个抽象的概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。12.2数据仓库基本概念我们用一个例子来详细说明。一家采用“会员制”经营方式的商场,按业务已建立起销售、采购、库存管理以及人事管理子系统。按照其业务处理要求,建立了各子系统的数据库模式:采购子系统:订单(订单号,供应商号,总金额,日期)订单细则(订单号,商品号,类别,单价,数量)供应商(供应商号,供应商名,地址,电话)12.2数据仓库基本概念销售子系统:顾客(顾客号,姓名,性别,年龄,文化程度,地址,电话)销售(员工号,顾客号,商品号,数量,单价,日期)人事管理子系统:员工(员工号,姓名,性别,年龄,文化程度,部门号)部门(部门号,部门名称,部门主管,电话)12.2数据仓库基本概念库存管理子系统:领料单(领料单号,领料人,商品号,数量,日期)进料单(进料单号,订单号,进料人,收料人,日期)库存(商品号,库房号,库存量,日期)库房(库房号,仓库管理员,地点,库存商品描述)应该分为两个步骤来组织数据:抽取主题以及确定每个主题所应包含的数据内容。12.2数据仓库基本概念抽取主题应该是按照分析的要求来确定主题。1.在OLTP数据库中进行数据组织时要考虑如何更好地记录下每一笔采购业务的情况,我们用“订单”、“订单细则”以及“供应商”三个数据库模式来描述一笔采购业务所涉及的数据内容,这就是面向应用来进行数据组织的方式;12.2数据仓库基本概念2.在数据仓库中,对于商品采购的分析活动主要是要了解各供应商的情况,显然“供应商”是采购分析的对象。我们并不需要象“订单”和“订单细则”这样的数据库模式,因为它们包含的是纯操作型的数据;但是仅仅只用OLTP数据库的“供应商”中的数据又是不够的,因而要重新组织“供应商”这个主题。12.2数据仓库基本概念确定主题的数据内容概括各种分析对象,我们抽取了商场的供应商、商品、顾客三个主题。然后确定每个主题所应包含的数据内容。以“商品”主题为例,应该包括两个方面的内容:第一,商品固有信息,如商品名称,商品类别以及型号、颜色等描述信息;第二,商品的流动信息,如某商品采购信息、商品销售信息及商品库存信息等。12.2数据仓库基本概念比照商场原有数据库的数据模式,我们可以看到:首先,在从面向应用到面向主题的转变过程中,丢弃了与分析活动关系不大的信息。其次,在原有的数据库模式中,关于商品的信息分散在各子系统中。12.2数据仓库基本概念面向主题的数据组织方式是根据分析要求将数据组织成一个完备的分析领域,即主题域。主题域应该具有:1.独立性,它必须具有独立内涵。2.完备性,就是要求对任何一个对商品的分析处理要求,我们应该能在“商品”这一主题内找到该分析处理所要求的内容。12.2数据仓库基本概念主题是一个在较高层次上对数据的抽象,这使得面向主题的数据组织可以独立于数据的处理逻辑,因而可以在这种数据环境上方便地开发新的分析型应用;同时这种独立性也是建设企业全局数据库所要求的,所以面向主题不仅是适用于分析型数据环境的数据组织方式,同时也是适用于建设企业全局数据库的组织。12.2数据仓库基本概念12.2.3数据仓库的数据是集成的数据仓库的数据是从原有的分散的数据库数据中抽取来的。在表11-1中我们已经看到,操作型数据与DSS分析型数据之间差别甚大。第一,数据仓库的每一个主题所对应的源数据在原有的各分散数据库中有许多重复和不一致的地方,且来源于不同的联机系统的数据都和不同的应用逻辑捆绑在一起;第二,数据仓库中的综合数据不能从原有的数据库管理系统直接得到;因此在数据进入数据仓库之前,必然要经过转换、统一与综合。12.2数据仓库基本概念12.2.4数据仓库的数据是不可更新的数据仓库的数据反映的是一段相当长时间内的历史数据,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。OLTP数据库中的数据经过抽取(Extracting)、清洗(Cleaning)、转换(Transformation)后装载(Loading)到数据仓库中,一旦数据存放到数据仓库中,数据就不再更新了。12.2数据仓库基本概念12.2.5数据仓库数据是随时间不断变化的数据仓库的用户在进行分析处理时是不进行数据更新操作的。但并不是说,从数据仓库数据整体来看就一成不变了。恰恰相反,数据仓库是随时间不断变化的。12.2数据仓库基本概念数据仓库的数据随时间不断变化是数据仓库数据的第四个特征。这一特征表现在以下三方面:第一,数据仓库随时间变化将不断增加新的数据内容。第二,数据仓库随时间变化不断删去旧的数据内容。第三,数据仓库中包含有大量的综合数据,这些综合数据中很多跟时间有关。12.3数据仓库中的数据组织数据仓库的数据组织结构如图12.1所示。数据仓库中的数据分为多个级别:早期细节级、当前细节级、轻度综合级、高度综合级。源数据经过抽取、清洗、转换、后装载进数据仓库。首先进入当前细节级。根据具体分析需求进一步综合为轻度综合级乃至高度综合级。随着时间的推移早期的数据将转入早期细节级。12.3数据仓库中的数据组织高度综合级轻度综合级当前细节级早期细节级元数据图12.1数据仓库的数据组织结构12.3数据仓库中的数据组织数据仓库中数据具有不同的综合级别,我们一般称之为“粒度”。粒度是数据仓库数据组织的一个重要概念。粒度越大、表示细节程度越低、综合程度越高。例如图12.2是利客隆连锁商店的数据仓库,存放了各个地区历年的各种商品销售明细数据。其中1990-1995年的销售明细数据已经成为历史数据,对应早期细节级。当前细节级中存放1996-2000年的各地各种商品的销售明细表。轻度综合级是1996-2000年每月销售表。高度综合级是1996-2000年每年销售表。12.3数据仓库中的数据组织1996-2000年每年销售表1996-2000年每月销售表高度综合级轻度综合级当前细节级早期细节级1996-2000年销售明细表1990-1995年销售明细表图12.2利客隆连锁店数据仓库的数据组织12.3数据仓库中的数据组织数据仓库中另一类重要的数据就是元数据。所谓元数据(Metadata)是关于数据的数据,即是对数据的定义和描述。数据仓库的元数据包括与数据库的数据字典中的相似内容,括数据仓库的特有的关于数据的描述信息。元数据的内容在数据仓库设计、开发、实施以及使用过程中不断完善,不仅为数据仓库的远行提供必要的信息、描述和定义,还为DSS分析人员访问数据仓库提供直接的或辅助的信息。12.4数据仓库系统的体系结构数据仓库系统总体上由以下几个部分组成:数据仓库的后台工具、数据仓库服务器、OLAP服务器和前台工具。图12.3是一个典型的数据仓库系统的体系结构。12.4数据仓库系统的体系结构外部数据操作型数据库数据数据源抽取工具转换工具装载工具维护工具DW与DW服务器数据集市元数据多维分析查询报表外部数据数据挖掘外部数据前台工具元数据管理工具OLAP服务器图12.3数据仓库体系结构12.4数据仓库系统的体系结构12.4.1数据仓库的后台工具数据仓库的后台工具,包括:•数据抽取(Extracting)•清洗(Cleaning)•转换(Transformation)•装载(Load)•维护(Maintain)12.4数据仓库系统的体系结构由于数据仓库的数据来源于多种不同的数据源。它们可能是不同平台上异构数据库中的数据,也可能是外部独立的数据文件、Web页面、市场调查报告等等。因此,这些数据常常是不一致的。例如:(1)同一字段在不同应用中具有不同数据类型;(2)同一字段在不同应用中具有不同的名字;(3)同名字段,不同含义。12.4数据仓库系统的体系结构为了将这些不一致的分散的数据集成起来,必须对它们进行转换后才能供分析之用。数据抽取、清洗、转换工具就是用来完成这些工作。数据抽取工具主要通过网关或标准接口把原来OLTP系统中的数据按照数据仓库的数据组织进行抽取。数据清洗主要是对源数据之间的不一致性进行专门处理,并且要去除与分析无关的数据或不利于分析处理的躁声数据。12.4数据仓库系统的体系结构数据经过抽取、清洗和转换后,就可以装载到数据仓库中,这由数据仓库的装载工具来实现。装载工具要解决的另一个问题是对大数据量的处理。数据仓库中的数据量比OLTP系统要大得多,进行装载需要很长的时间。目前通常的解决方式有两种:并行装载和增量装载。并行装载是把任务进行分解,充分利用CPU资源。增量装载就是只装载修改的元组以减少需要处理的数据量。12.4数据仓库系统的体系结构数据仓库维护的主要内容是,周期性把操作型环境中的新数据定期加入(pump)数据仓库中、刷新数据仓库的当前细节数据、将过时的数据转化成历史数据,清除不再使用的数据,调整粒度级别等。12.4数据仓库系统的体系结构元数据管理工具是数据仓库系统的一个重要组成部分。由于分析需求的多变性,导致数据仓库的元数据也会经常变化,对元数据的维护管理比传统数据库对数据字典的管理要复杂和频繁得多。因此,需要一个专门的工具软件来管理元数据。12.4数据仓库系统的体系结构12.4.2数据仓库服务器和OLAP服务器数据仓库服务器相当于数据库管理系统中的数据库管理系统,它负责管理数据仓库中数据的存储管理和数据存取,并给OLAP服务器和前端工具提供存取接口(如SQL查询接口)。OLAP服务器透明地为前端工具和用户提供多维数据视图。12.4数据仓库系统的