首页 理论教育 决策支持系统的关键技术

决策支持系统的关键技术

时间:2022-11-05 理论教育 版权反馈
【摘要】:数据仓库是决策支持的基础,是系统的核心,它存储了决策者所需的信息资料。维的一个取值称为该维的一个成员。多维数据集是决策的支柱,是OLAP的核心。OLAP主要特征是快速的、共享的、多维的、信息的分析,这也是评价OLAP系统设计好与差的重要评价标准。系统必须提供对数据的多维分析和多维视图的展现,包括对维度的不同层次与级别的完全支持。ROLAP是基于关系数据库的OLAP实现,以关系数据库为核心,以关系型结构进行多维数据的表示和存储。

一、联机分析处理与数据挖掘技术

1. 联机分析处理 (OLAP) 技术概述

数据仓库是决策支持的基础,是系统的核心,它存储了决策者所需的信息资料。若要有效的利用数据仓库中的资源,必须有强大的分析工具对数据仓库中的数据进行分析,通过对大量的数据进行分析,总结规律,做出决策。OLAP技术正是为了满足数据仓库用户分析需求而开发设计的,并广泛应用于数据仓库。

OLAP最初是由关系数据库之父E.F.Codd在1993年提出,同时提出了评价OLAP的12条准则。而后来OLAP理事会进一步对有关OLAP的定义做了准确的论述: OLAP是一种软件技术,它使分析人员、管理人员和执行人员能够从多个角度对从数据源转化出来的、能够真正成为用户所理解的并真实反映维度特性的进行快速的、一致的、交互的存取,从而获得对数据信息更深入的了解。

(1) OLAP的相关概念。

OLAP技术主要是用于多维分析,满足多维查询,它的技术核心是“维”这个概念。为了使多维模型逻辑清晰,OLAP定义了变量、维度、维成员、多维数组和数据单元等基本概念。

①变量。

变量是数据的实际意义,即用于描述数据是“什么”,变量一般都有一定的取值范围,变量值主要是由数值型数据构成,如某省人口的数量或各个年龄段的结婚率、离婚率等,它们都有一定的取值范围。数值本身并没有意义,但是加上度量单位则可描述数值的意义。因此,一般情况下变量总是有一个数值度量单位。

②维度。

维度是人们观察数据的特定的角度,它是构成数据仓库的基础,对以后数据查询、分析有重要影响。现在有很多的数据仓库专业人士和数据仓库书籍都谈到了维度建模的重要性。在维度建模时,首先要确定哪些是维度,哪些是事实。在有些情况下,维度是比较好确定的,如时间维度、地区维度等; 但在另外一些情况下,则很难确定,因为维度和事实之间并没有很明显的界线,作为事实还是作为维度属性来看待,这时需要根据经验和分析需要来决定,一般来说,如果是一个含有许多的取值并参与运算的度量值可当作事实看待,当含有变化不多的取值并参与作为约束条件的离散取值的描述当作维度属性看待,例如,在政府决策支持系统中,政府常关心的随时间推移 (如每个月) 的财政收入、财政支出、增长速度等情况,这时时间就是一个维。上级政府可能除了看汇总的财政收入、支出情况以外,可能还要看各个地区的具体财政收入、财政支出情况,则省、市、县就构成了一个维度。

③维的层次。

当不同的用户在观察某个特定的角度时,可能所观察的数据的细节程度不一样。一个维度存在的细节程度不同的多个描述方面便称之为维的层次。一般来说,一个维度往往有多个层次,例如,时间维可能包括年、季度、月等层次; 地理维可由国家、省、市和县等层次构成。

④维成员。

维的一个取值称为该维的一个成员。如果一个维有多个层次,那么该维的成员是由不同的维层次的取值的组合。如果一个维是由年、月和日三个层次组成,那么分别在年、月、日取一个值组合,便得到一个时间维成员,如2007年1月1日。

⑤多维数据集。

多维数据集是决策的支柱,是OLAP的核心。多维数据集可由多维数组来表示 (维1,维2,维3,…,维n; 变量),例如,一个由时间、地区和企业类型便构成了一个立方体,加上变量产品销售收入就组成了一个多维数组 (时间,地区,企业类型; 产品销售收入)。在实际中,由三个维构成的称之为立方体,由三个维以上构成的多维数组称之为超立方体。

⑥数据单元。

多维数组的一个取值称为数据单元。当多维数组的每个维选取一个维成员时,这些维成员的组合就确定了唯一的一个变量值。那么数据单元可表示为 (维成员1,维成员2,维成员3,…,维成员n; 变量的值),例如,2004年江西省国有企业产品销售收入为5938818万元。

(2) OLAP多维分析操作。

OLAP的多维分析操作主要是对由多维形式组织起来的数据采取切片、切块、钻取、旋转等方式分析数据。使用户能够从多个多度、多个侧面观察数据,从而深入了解数据中所包含的信息。

①切片。

切片是在多维数据立方体上的某一维上选定一个维成员值的操作。也就是说在多维数组(D1,D2,…,Dn; V) 选定一个维Di的某一成员,得到立方体的子集,则称之为Di一个的切片。

②切块。

切块是在多维立方体上的某一维上选定某一区间的维成员的操作,即限制了多维数组的某一维的取值区间。显然,当这一区间只取某一个维成员时,即得到了一个切片。

③钻取。

一般来说,一个维度具有多个层次或级别。为了方便访问维中的每个层次和级别,在OLAP分析操作中,提供了钻取操作,它又分为上卷和下钻操作。上卷是指在某一维上将低层次的细节数据概括到高层次的汇总数据; 下钻与上卷刚好相反,它主要用于从汇总数据向下深入到细节数据进行观察分析。

④旋转。

旋转是一种改变视图角度的操作,通过改变行维、列维、维度之间的位置来从不同角度观察立方体。

(3) OLAP的特征与评价标准。

关系数据库之父E.F.Codd提出了多条标准,清楚地区分了OLTP与OLAP之间的差别,为OLAP技术的发展指明了方向。OLAP主要特征是快速的、共享的、多维的、信息的分析,这也是评价OLAP系统设计好与差的重要评价标准。

①快速性。

快速情主要是指系统响应多维查询分析的时间。数据仓库的最终用户只希望快速方便地找到所需的资料; 一般来说,如果系统的响应时间在3~10秒,用户则可接受,如果查询时间超过20秒,用户可能就会变得不耐烦,由于数据仓库中包含了大量的数据,要达到响应时间上的要求并非易事,这就需要技术上提供支持,如对数据仓库的性能优化、大量的预先计算和硬件的更新等。

②可分析性。

系统要能处理与应用相关的任何逻辑分析与统计分析,用户无须编程就可以定义新的计算,将其作为分析的一部分,并按用户的要求给出报告,且可提供灵活的报表处理功能以及保存分析结果。

③共享性。

由于一个数据仓库有许多不同的用户使用,这就要求系统能根据用户的不同级别,让用户只能看到属于某个级别的数据与信息。

④多维性。

OLAP的主要特点就是多维分析,提供多维视图。系统必须提供对数据的多维分析和多维视图的展现,包括对维度的不同层次与级别的完全支持。

⑤信息性。

不管数据量有多大,不管数据的存储方式如何,OLAP都应及时获得用户所需信息,并管理信息。这里有些因素必须考虑,包括数据的复制、磁盘空间的利用情况以及OLAP与数据仓库的结合度等。

(4) OLAP分类。

在实际中OLAP有多种实现方式,根据存储方式的不同,可把OLAP分为ROLAP和MOLAP两大类。

①ROLAP。

ROLAP是基于关系数据库的OLAP实现,以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表: 一类是事实表,用来存储数据和维关键字; 另一类是维表,即对每个维度至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了“星型模式”。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为“雪花模式”。

②MOLAP。

MOLAP表示基于多维数据组织的OLAP实现 (Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成“立方块 (Cube)”的结构,在MOLAP中对“立方块”的“旋转”“切块”“切片”是产生多维数据报表的主要技术。

③两者的比较。

ROLAP在节省存储空间、灵活性、与关系数据库保持一致等方面有明显的优势; 而MOLAP则在性能和管理的简便性方面有其优点。在现在的OLAP开发工具中,较多的OLAP分析工具是基于MOLAP来实现。

2. 数据挖掘技术

随着计算机应用的迅速发展,无论是商业企业、科研机构或者政府部门,在过去若干年的时间里都积累了海量的、以不同形式存储的数据资料。但当面对越来越多迅速膨胀的数据时,人们却无从着手去理解数据中包含的信息,更难以获得有价值的知识。传统的决策支持系统 (DSS) 和领导执行系统 (EIS) 已不能满足需要。数据挖掘概念的提出,使人们有能力克服这些困难,去挖掘出蕴藏在数据中的信息和知识。数据挖掘是目前国际上数据库和信息决策领域的最前沿研究方向之一,引起了学术界和工业界的广泛关注。一些国际上高级别的工业研究实验室,如IBM Almaden和GTE,和众多的学术单位,如UC Berkeley,都在这个领域开展了各种各样的研究计划。

(1) 数据挖掘概念。

数据挖掘在不同的领域有不同的定义,在这里主要是从技术角度和商业角度介绍数据挖掘的概念。

①技术层面的定义。

数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又潜在有用的信息和知识的过程。数据挖掘又称之为知识发现。

②商业层面的定义。

数据挖掘是一种商业信息处理技术,其主要特点是对商业数据库中大量的业务数据进行抽取、转换、分析和模式化处理,从中提取出能辅助商业决策的关键数据。

不管哪种定义,从本质上来说都是一样的,数据挖掘是一种深层次的数据分析方法,我们可以把它描述为按照用户的业务目标,对大量的业务数据进行检索和分析,揭示隐藏的、已知的或未知的规律,并进一步对其模型化的一种有效方法。

(2) 数据挖掘的分类。

数据挖掘涉及的学科领域和方法很多,有人工智能、数据统计、可视化、并行计算等。数据挖掘有多种分类方法,根据功能或者应用类别可将数据挖掘分为分类分析、关联规则、序列分析和聚类分析四类。

①分类分析。

分类是找出定义了一个项或事件是否属于数据集中某个特定子集或类的规则。分类的关键是对数据按照什么样的规则进行分类,其旨是生成一个分类函数或分类模型,该模型能把数据库中的数据项映射到给定类别中的某一个。既可以用此模型分析已有的数据,也可以用它来预测未来的数据。分类作为数据挖掘的主要内容之一,主要是通过分析训练数据样本,产生类别的精确描述,它通常包括创建模型和预测分类两个子过程。

②关联规则。

关联规则分析主要用于寻找给定数据集中不同数据项间的相关性,它的典型应用例子就是购物篮分析。购物篮分析是通过发现顾客放入其购物篮中不同的商品的联系,来了解顾客的购买习惯,并通过支持度和可信度来衡量。

③序列模式分析。

序列模式分析同关联规则分析相似,同样也是试图找出数据之间的联系,但它的侧重点在于分析数据之间前后 (因果) 关系,因此对数据往往要求引入时间属性。序列模式分析非常适于寻找事物的发生趋势或重复性模式,在政府决策支持系统中,就使用了序列模式分析。

④聚类分析。

将数据对象的集合进行分组,形成由类似对象组成多个类的过程称为聚类。聚类分析与分类分析不同,它输入的是一组未分组记录,并且这些记录应分成几类事先并不知道。聚类分析就是将待分析的数据根据一定的分类规则,合理的划分数据集合,确定每个数据所在的数据类别。

3.OLAP与DM的关系

OLAP与DM现在都广泛应用于数据仓库的数据分析,它们之间存在一定的互补性,但是对数据分析的深度与功能特点上却有明显的区别。

(1) OLAP技术是以“维”为核心,主要负责数据从下而上的汇总以及从上而下的数据的详细描述,以多维视图的方式展现,满足用户从多个角度观察和分析数据的需要。而DM体现在对数据分析的深入,做出预测性的分析; 且它与OLAP最大的不同是DM的分析过程是自动化的。

(2) 在OLAP系统设计中,更多的是强调数据的查询响应时间是否是在允许等待的时间范围内,多维模型结构是否能满足用户的各个方面观察数据的需求以及它的灵活如何。而DM更多的是着重发现隐藏在数据深层次的对人们有用的模式,并不过多地考虑响应时间与执行效率。

(3) 在对数据的分析上,OLAP提供了假设分析、复杂计算和数据评估等较深度的分析能力,能够满足数据预计算、同期对比、期初/期末余额百分比份额计算、资源分配、移动平均、均方差分析的需要,且能解决用户的如销售预测、费用预算分配、奖金制度确定等问题。而DM采用了统计推理、人工智能和机器学习等技术。使用人工神经网络、遗传算法、决策树和最近相邻法等方法,建立相应的数据模型,发现数据间的相关性和规律并做出预测。

随着数据仓库和OLAP技术的发展,OLAP与DM之间的界线变得模糊了,越来越多的OLAP产品集成了DM的功能,融入了DM技术,并提出了OLAM概念,即OLAP+DM,使得许多OLAP工具不仅仅拥有分析的能力,还有预测的能力,这也可能是今后发展的一个趋势。

二、数据仓库技术

1. 数据仓库概述

(1) 数据仓库。

数据仓库概念始于20世纪80年代,其中有不少专家学者纷纷提出了关于数据仓库的定义,现在比较认可的是由数据仓库之父William H.Inmon在1992年所编写的《Buildingthe Date Warehouse》一书中所提出的,他指出数据仓库是一个面向主题的、集成的、不可更新的、随时间变化的数据集合,用于支持经营管理中决策制定的过程。

对于数据仓库的概念我们可以从两个层次给予理解。首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业和政府现有的操作型数据库; 其次,数据仓库是对多个异构数据源的有效集成,集成后按照主题进行重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。从定义可以看出数据仓库主要包括以下四个特征:

①数据仓库中的数据是面向主题进行组织的。

主题是在较高层次上对各数据源的数据综合、归类并分析利用的抽象。在某种意义上,主题也是某一宏观领域的分析对象。面向主题的数据组织方式是在较高层次上对分析对象一个完整的、一致的描述,能完整、统一的刻画各个分析对象所涉及的单位的各项数据,以及数据之间的关系。需要指出的是,主题是一个抽象的逻辑概念,在物理实现上每个主题是由一组相关的表存储在关系数据库中,通过公共键来联系。

②数据仓库中的数据是集成的。

面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库的数据来自于各个不同的业务系统或其他电子文件,在对原有分散的数据源中的数据进行抽取、清理的基础上,经过系统加工、汇总和整理得到,并消除数据中的不一致性,以保证数据仓库内的信息的整体性和一致性。

③数据仓库的数据是相对稳定的。

数据仓库的数据主要供企业决策分析使用,所涉及的数据操作主要是数据查询,一旦数据进入数据仓库以后,一般情况下将被长期保留 (即5年~10年时间甚至更长),也就是说数据仓库中一般是大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。

④数据仓库的数据是随时间变化的。

数据仓库的数据相对稳定是针对应用而言的,主要是指数据仓库系统数据的不可更新性。基于数据仓库的决策系统主要用于决策支持,为了给决策者提供正确的、及时的信息资料,它主要表现出以下三点:

一是必须随时间不断地向数据仓库中增加决策所需的信息资料。也就是数据仓库系统必须不断捕捉OLTP数据库中的变化数据,生成OLTP数据库的快照,经统一集成后追加到数据仓库中。

二是必须随时间变化不断删除旧的数据内容。存储空间总是有限的,虽然现在有各种外存储器设备,但数据仓库中数据的增长速度比我们设想的要快得多,且随着时间的推移、人员的交替和计算机技术的迅速发展,数据的管理也存在一定困难,过了一定时间后数据对决策分析并不能带来帮助,所以必须定期删除一部分陈旧的数据。

三是数据仓库中包含大量的综合数据,这些综合数据中很多与时间相关,如数据按年度、季度和月份等进行综合。这些数据则需要随时间变化不断重新综合。

(2) 数据仓库的几个相关概念

①数据集市

数据集市是数据仓库的一个子集,它经常为单位的职能部门或某个特定的需求提供信息。由于每个部门的具体需求可能与其他部门没有什么关系,因而,很多单位转而选择采用一个较低成本的、规模较小的数据仓库,也称为数据集市。从某种意义上来说,数据仓库是全局性的,而数据集市是局部性的。数据仓库由多个数据集市构成,数据集市经常作为一种进入数据仓库世界的途径,并且使错误发生在较小的规模上。但是如果没有从整体范围内的视角进行审慎的设计,数据集市很有可能会成为单位内其他部门无法访问的信息孤岛。如果在企业范围的数据仓库系统框架中建设数据集市,那么它们将提供一种更具有目标性、费用更低的方法来获取采用数据仓库可获得的优势。

②元数据。

元数据是关于数据的数据,是数据仓库中的数据及处理过程的描述性数据。元数据是数据仓库的重要组成部分,它贯穿了数据仓库系统的创建、维护、管理和使用的各个环节中。元数据包含了数据仓库中数据的位置、结构、意义的详细描述,包括数据索引、映射信息、用于转换及汇总的算法及商业规则。元数据能够让用户了解到数据仓库中有什么数据以及怎样使用这些数据。元数据涉及数据仓库构造、运行、维护的整个生命周期,是数据仓库系统构建过程中十分重要的一环。

③粒度。

所谓粒度是指数据仓库中数据单元的详细程度和级别。数据越详细,粒度越小级别越低,数据综合度越高,粒度越大级别越高。在传统的操作型系统中,对数据的处理和操作都是在详细数据级别上进行的。但是在数据仓库中主要是分析型处理,为了适合数据仓库用户的查询要求,一般将数据划分为详细粒度、轻度综合和高度综合三个或更多粒度级别。对于数据仓库开发者来说,确定数据仓库中恰当的数据粒度是一个非常重要的设计问题。如果数据仓库中粒度确定得合理,设计和实现将变得比较顺利,否则,可能会引来灾难性的后果。

④维表。

维表是维度逻辑结构在物理中的存储实现,主要包括维的级别、维的层次、维的属性与维的主键等内容。

⑤事实表。

在数据仓库模型中存储了大量的事实数据,一般事实表是由一个或一组事实以及维表相关联的外键组成。事实数据通常是指用于被分析的数值型数据。

(3) 数据库与数据仓库的比较。

数据的处理主要可以分为两大类: 事务型处理和分析型处理。数据库主要是用于事务型处理,而数据仓库则主要用于分析型处理。虽然它们的数据内容都存储在关系数据库中,但是它们的应用特点和数据结构都存在明显的差异。

在事务型处理中,一般只需要本部门业务有关的当前数据,人们关心的是响应时间和数据的完整性与安全性; 特点是数据的存取操作频率高,但是每次操作处理的时间短。而在分析处理环境中,需要的是全面的、正确的数据,因为全面且正确的数据是有效分析的前提,一个DSS的应用程序可能需要连续运行几个小时,从而消耗大量的系统资源。

2. 数据仓库的体系结构

一个数据仓库体系结构一般是由数据源、数据存储与管理、OLAP服务器和前端展现工具构成,如图6-2所示。

(1) 数据源。

数据源是数据仓库的基础,是整个系统的数据源泉,通常包括单位的内部信息和外部信息。

(2) 数据准备区。

数据准备区也被称为数据中间存储区,是一个关系数据库,由于源数据是存放在各个部门的业务系统中,而且各个业务系统中的数据也不符合数据仓库的要求。这就要求我们要创建一个数据准备区来存放经清洗和整理的源数据,并检查一致性和引用完整性,然后准备装入数据仓库数据库。准备区中包含了源数据键与用于数据仓库的代理键相关的表、转换数据的表,以及许多临时表,还包含了从源数据系统中析取数据的进程和过程。但是在某些数据仓库实施方案中,有些将数据准备区和数据仓库数据库组合在一起。

(3) 数据仓库数据库。

数据仓库的数据和信息都存储在数据库中,通过对各业务系统的数据进行抽取、整理和集成,或对数据准备区的数据进行抽取和集成; 按照主题进行重新组织,确定数据仓库的物理结构,同时对数据仓库的元数据按某种存储结构进行存储。

图6-2 数据仓库体系结构

(4) OLAP服务器。

OLAP服务器是对所需分析的主题与数据有效的集成,按多维模型进行重组,以支持用户从多角度、多层次分析,并发现某种规律和趋势。

(5) 前端展现工具。

前端工具主要是指各种数据分析工具、多维展现工具、报表工具、查询工具和数据挖掘工具等,利用这些工具可以方便地把数据仓库的信息以各种图表方式展现出来,帮助决策者分析形势、预测未来。

3. 数据仓库的设计

数据仓库是面向主题的、集成的、相对稳定的、随时间变化的特点决定了数据仓库的设计与传统面向事务处理的数据库系统设计具有不一样的设计方法。

数据仓库的性质决定了数据仓库系统的原始需求不明确,且不断变化和增加。由于数据仓库最终用户主要是管理决策者,一方面是他们工作繁忙没有太多的时间来思考; 另一方面是他们不能很好地明确自己的角色,平凡的交流和沟通使他们有一定的抵触情绪。这些就导致了他们只能提供大概的方向和功能需求,不能准确的预见以后的需求和功能,开发者开始不能明确且详细的了解用户的需求,从而使基于数据仓库系统的开发是一个经过不断循环、反馈使系统不断成熟和完善的过程。正如一些专家所说,数据仓库不是一件产品,而是一个过程。数据仓库的设计中主要有概念模型设计、逻辑模型设计和物理模型设计。

(1) 数据仓库概念模型设计。

数据仓库的概念模型是对原有业务系统和资料进行分析理解,分析各业务系统的数据内容、组织形式和分布情况。通过需求分析确定主题域,建立数据仓库概念模型。

在实际应用中,概念模型常采用E-R图作为描述工具,它具有良好的操作性、形式简单、易于理解,在关系数据库设计中E-R图得到了广泛的应用。而目前的数据仓库一般是建立在关系数据库的基础上,为了和原业务系统数据库模型保持一致性,采用E-R图来描述数据仓库的概念模型仍然具有可行性。

(2) 数据仓库逻辑模型设计。

数据仓库中的逻辑模型描述了主题的逻辑实现以及主题之间的关系。因此,逻辑设计在数据仓库中是非常重要的一环,它起着承上启下的作用,既能直接反映出概念模型,又对物理模型的实现也起着重要的指导作用。它主要分为第三范式模型、星型模型和雪花模型三种。

①第三范式模型。

在数据仓库的模型中也可采用第三范式的数据模型,它可实现数据访问的灵活性和高效的数据存储。采用第三范式模型具有非常严格的数学定义,它要求数据仓库中的数据必须进行第三范式的规范化处理,即要满足以下三个条件:

第一是每个属性的值唯一,不具有多义性;

第二是每个主属性必须完全依赖于整个主键,而非主键的一部分;

第三是每个主属性不能依赖于其他关系中的属性。

在实际应用中,对于一些查询速度要求高、对某些决策的解释性文件资料常采用第三范式。

②星型模型。

星型模型是一种多维的数据关系,核心思想是要在存储于数据库之内的所有数据之间建立简明清晰的关系,它由一个事实表和一组维表组成。每个维表中都有一个维属性作为主键,所有这些维则组合成事实表的主键,换言之,事实表主键的每个元素都是维表的外键。事实表的非主属性称为事实,它们一般都是数值或其他可以进行计算的数据,包括了业务数据和汇总的业务事实; 而维度都是文字、时间等类型的数据,它们从不同的角度描述了业务的各个维度,以满足数据仓库最终用户查询的需要。

③雪花模型。

雪花模型以事实表为中心,四角周是访问的角度,对应维表,每一维又可分为不同的粒度。雪花模型是对星型模型的一个扩展,它把星型模型的维表进一步层次化,使用多张表来描述一个复杂维,形成一些局部的“层次”区域,增加了应用程序的灵活性,降低了维表的数据冗余,每一个维表通过一个关键字与事实表关联。

(3) 数据仓库的物理模型设计。

物理模型设计就是对逻辑模型在数据仓库中的实现,所做的主要工作是确定数据的存储结构、索引策略、数据存放位置和存储分配方式等。在物理模型设计时,针对数据仓库中数据量大但操作较单一的情况,主要的考虑因素有I/O存取时间、空间利用情况和维护代价的大小,并可能要采取一些数据仓库性能优化技术,如表的合并或拆分、实体化视图的应用和建立广义索引与位图索引等。

4. 数据仓库中数据的组织与维护

数据仓库的数据主要可划分为早期细节级、当前细节级、轻度综合级和高度综合级四个级别。源数据经过综合以后,首先进入当前细节级,根据具体需要对数据进一步进行综合,从而得到轻度综合或高度综合数据。

(1) 数据仓库中数据的组织形式在数据仓库中,数据的组织形式主要有以下几种。

①简单堆积文件。

简单堆积文件是由每日从业务系统数据库提取加工的逐个记录为基础堆积的数据。

②轮换综合。

轮换综合是简单堆积的一种变种。数据存储单位被分为日、周、月、年等级别。在一个星期中,数据被逐一记录在数据集中,然后七天的数据被综合记录在周数据集中。接下来的一个星期,日数据集被重新使用,以记录新的数据。同理,当周数据集达到一个月时,数据被综合到月数据集中。当月数据集记录了12个月时,数据被综合到年数据集中。

③简化直接文件。

数据仅仅从业务系统导入数据仓库环境中,并没有任何积累。但是简化直接文件不是在每天的基础上组织的,而是以较长时间生成的,如一个星期或一个月。因此,简化直接文件是操作型数据隔一定时间的一个快照。

(2) 数据仓库中数据的维护。

在数据仓库中,主要的维护工作是数据的追加,即将业务系统的数据追加到数据仓库中。现主要有以下四种数据加载策略。

①时戳方式。

需要在OLTP系统中的业务表中统一添加时间字段作为时戳 (如表中已有相应的时间字段,可以不必添加),每当OLTP系统中更新修改业务数据时,同时修改时戳字段值。当ETL加载时,通过系统时间与时戳字段的比较来决定进行何种数据抽取。它可使ETL系统设计清晰,源数据抽取相对清楚简单,速度快,可以实现数据的递增加载。但是,时戳维护需要由OLTP系统完成,需要修改原OLTP系统中的业务表结构; 且所有添加时戳的表,在业务系统中的数据发生变化时,需要同时更新时戳字段,对原OLTP系统业务操作程序进行修改,工作量大,改动较大。

②日志表方式。

在OLTP系统中添加系统日志表,当业务数据发生变化时,更新维护日志表内容,当ETL加载时,通过读日志表数据决定加载哪些数据及如何加载。它不需要修改OLTP表结构,源数据抽取清楚,速度较快,可以实现数据的递增加载。但是,日志表维护需要由OLTP系统完成,需要对OLTP系统业务操作程序作修改,记录日志信息。日志表维护较为麻烦,对原有系统有较大影响,工作量较大,改动较大。

③全表对比方式。

在ETL过程中,抽取所有源数据,并进行相应规则转换,完成后先不插入目标表,而是每条数据与目标表进行比对,根据主键值进行插入与更新的判定,目标表已存在该主键值的,表示该记录已有,并进行其余字段比对,如有不同,进行Update操作; 如目标表没有存在该主键值,表示该记录还没有,即进行Insert操作。它对已有系统表结构不产生影响,不需要修改业务操作程序,所有抽取规则由ETL完成,管理维护统一,可以实现数据的递增加载。但是ETL比对较复杂,设计较为复杂,速度较慢。

④DELTA文件方式。

DELTA文件方式是由应用生成的,记录了应用所改变的所有内容。利用DELTA文件的效率高,避免扫描整个数据库,但同样的问题是生成DELTA文件的应用不普遍。此外还有更改应用代码的方法,使得应用在生成新数据时可以自动将其记录下来。但是成千上万的应用,修改代码十分烦琐,这种方法较少在实际中实现和应用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈