1、数据仓库产生背景
事务处理环境不适宜DSS应用的原因主要有以下五条:
(1)事务处理和分析处理的性能特性不同。
在事务处理环境中,用户的行为特点是数据的存取操作频率高而每次操作处理的时间短;在分析处理环境中,用户的行为模式与此完全不同,某个DSS应用程序可能需要连续几个小时,从而消耗大量的系统资源。将具有如此不同处理性能的两种应用放在同一个环境中运行显然是不适当的。
(2)数据集成问题。
DSS需要集成的数据。全面而正确的数据是有效的分析和决策的首要前提,相关数据收集得越完整,得到的结果就越可靠。当前绝大多数企业内数据的真正状况是分散而非集成的。造成这种分散的原因有多种,主要有事务处理应用分散、“蜘蛛网”问题、数据不一致问题、外部数据和非结构化数据。
(3)数据动态集成问题。
静态集成的最大缺点在于,如果在数据集成后数据源中数据发生了变化,这些 变化将不能反映给决策者,导致决策者使用的是过时的数据。集成数据必须以一定的周期(例如24小时)进行刷新,我们称其为动态集成。显然,事务处理系统不具备动态集成的能力。
(4)历史数据问题。
事务处理一般只需要当前数据,在数据库中一般也是存储短期数据,切不同数据的保存期限也不一样,即使有一些历史数据保存下来了,也被束之高阁,未得到充分利用。但对于决策分析而言,历史数据是相当重要的,许多分析方法必须一大量的历史数据为依托。没有历史数据的详细分析,是难以把握企业的发展趋势的。DSS对数据在空间和时间的广度上都有了更高的要求,而事务处理环境难以满足这些要求。
(5)数据的综合问题。
在事务处理系统中积累了大量的细节数据,一般而言,DSS并不对这些细节数据进行分析。在分析前,往往需要对细节数据进行不同程度的综合。而事务处理系统不具备这种综合能力,根据规范化理论,这种综合还往往因为是一种数据冗余而加以限制。
要提高分析和决策的效率和有效性,分析型处理及其数据必须与操作型处理及其数据相分离。必须把分析型数据从事务处理环境中提取出来,按照DSS处理的需要进行重新组织,建立单独的分析处理环境,数据仓库正是为了构建这种新的分析处理环境而出现的一种数据存储和组织技术。
2、数据仓库体系结构图
数据仓库的实现主要以关系数据库(RDB)技术为基础,因为关系数据库的数据存储和管理技术发展得较为成熟,其成本和复杂性较低,已开发成功的大型事务数据库多为关系数据库,但关系数据库系统并不能满足数据仓库的数据存储要求,需要通过使用一些技术,如动态分区、位图索引、优化查询等,使关系数据库管理系统在数据仓库应用环境中的性能得到大幅度的提高。
数据仓库在构建之初应明确其主题,主题是一个在较高层次将数据归类的标准,每一个主题对应一个宏观的分析领域,针对具体决策需求可细化为多个主题表,具体来说就是确定决策涉及的范围和所要解决的问题。但是主题的确定必须建立在现有联机事务处理(OLTP)系统基础上,否则按此主题设计的数据仓库存储结构将成为一个空壳,缺少可存储的数据。但一味注重OLTP数据信息,也将导致迷失数据提取方向,偏离主题。需要在OLTP数据和主题之间找到一个“平衡点”,根据主题的需要完整地收集数据,这样构建的数据仓库才能满足决策和分析的需要。
建立一个数据仓库需要经过以下几个处理过程:①数据仓库设计;②数据抽取;③数据管理。
根据决策主题设计数据仓库结构,一般采用星型模型和雪花模型设计其数据模型,在设计过程中应保证数据仓库的规范化和体系各元素的必要联系。主要有以下3个步骤:
①定义该主题所需各数据源的详细情况,包括所在计算机平台、拥有者、数据结构、使用该数据源的处理过程、仓库更新计划等。
②定义数据抽取原则,以便从每个数据源中抽取所需数据;定义数据如何转换、装载到主题的哪个数据表中。
③将一个主题细化为多个业务主题,形成主题表,据此从数据仓库中选出多个数据子集,即数据集市(DataMart)。数据集市通常针对部门级的决策或某个特定业务需求,它开发周期短,费用低,能在较短时间内满足用户决策的需要。因此,在实际开发过程中可以选择在成功建立几个数据集市后再构建数据仓库这种策略。
这些数据定义直接输入系统中,作为元数据(metadata)存储,供数据管理模块和分析使用。元数据存储在元数据库中,它不仅是数据仓库的文档资料,供管理、维护人员使用,而且亦可供用户查询,使之更好地了解数据仓库结构,提高自己的使用水平。
数据抽取模块
该模块是根据元数据库中的主题表定义、数据源定义、数据抽取规则定义对异地异构数据源(包括各平台的数据库、文本文件、HTML文件、知识库等)进行清理、转换,对数据进行重新组织和加工,装载到数据仓库的目标库中。在组织不同来源的数据过程中,先将数据转换成一种中间模式,再把它移至临时工作区。加工数据是保证目标数据库中数据的完整性、一致性。例如,有两个数据源存储与人员有关的信息,在定义数据组成的人员编码类型时,可能一个是字符型,一个是整型;在定义人员性别这一属性的类型时,一个可能是char(2),存储的数据值为“男”和“女”,而另一个属性类型为char(1),数据值为“F”和“M”。这两个数据源的值都是正确的,但对于目标数据来说,必须加工为一种统一的方法来表示该属性值,然后交由最终用户进行验证,这样才能保证数据的质量。在数据抽取过程中,必须在最终用户的密切配合下,才能实现数据的真正统一。早期数据抽取是依靠手工编程和程序生成器实现,现在则通过高效的工具来实现,如Ardent公司的Infomoter产品、SAS的数据仓库产品SAS/WA(WarehouseAdministrator)及各大数据仓库厂商推出的、完整的数据仓库解决方案。
该模块分为目标数据维护和元数据维护两方面。目标数据维护是根据元数据库所定义的更新频率、更新数据项等更新计划任务来刷新数据仓库,以反映数据源的变化,且对时间相关性进行处理。更新操作有两种情况,即在仓库的原有数据表中进行某些数据的更新和产生一个新的时间区间的数据,因为汇总数据与数据仓库中的许多信息元素有关系,必需完整地汇总,这样才能保证全体信息的一致性。
数据仓库规模一般都很大,从建立之初就要保证它的可管理性,一个企业可能建立几个数据仓库或数据集市,但他们可共用一个元数据库对其进行管理。首先从元数据库查询所需元数据,然后进行数据仓库更新作业,更新结束后,将更新情况记录于元数据库中。当数据源的运行环境、结构及目标数据的维护计划发生变化时,需要修改元数据。元数据是数据仓库的重要组成部分,元数据的质量决定整个数据仓库的质量。
3、数据仓库建模
- 数据模型
- 所有的实体都是平等关系。
- 仅仅从数据模型的角度来着手设计数据仓库会产生一种“平面”效应。
- 星型连接
- 事实表:位于星型连接的中央,它是被大量载入数据的实体。
- 维表:周围的其它实体。
- 在很多情况下:文本数据与数值数据是分离开的。
星型连接应用于设计数据仓库中很大的实体,而数据模型则应用于数据仓库中较小的实体。
- 建模十条戒律
- 必须回答紧迫的问题;
- 必须有正确的事实表;
- 将有正确的维表,描述必须按最终用户的业务术语表达;
- 必须理解数据仓库所影响的公司过程或影响数据仓库的公司过程;
- 对于事实表,应该有正确的“粒度”;
- 根据需要存储正确长度的公司历史数据;
- 以一种对于公司有意义的方式来集成所有必要的数据;
- 创建必要的总结表;
- 创建必要的索引;
- 能够加载数据仓库数据库并使它以一种适宜的方式可用。