1、数据仓库的结构
在数据仓库中数据存在着不同的细节级:早期细节级(通常是存储在备用海量存储器上)、 当前细节级、轻度综合细节级(数据集市级)以及高度综合数据级。
数据是由操作型环境导入到数据仓库的,相当数量的数据转换是发生在数据由操作层向数据仓库层传输的过程中。
一旦数据过期后,就由当前细节级进入到早期细节级,综合后的数据由当前细节级进入轻度综合级,然后由轻度综合数据级进入到高度综合数据级。
2、面向主题
(1)数据仓库是面向在高层企业数据模型中已定义好的企业主要主题域的。典型的主题域有:顾客、产品、交易或活动、保险单、索赔、帐目。
(2)在数据仓库中,每一个主要主题域都是以一组相关的表来具体实现的,每个表都是用来实现该主题域的一部分,所有的物理表都是通过该主题域的公共关
键字来关联的,但是并不是所有的物理表都是保存在同一存储设备上(需要DBMS支持)。
(3)每个公共关键字都会包含有至少一个时间元素。
(4)相同的数据既会有综合级又有细节级,即同一数据的各种细节级都会存在。
3、建立数据仓库的演化
第一天:熟悉现有操作型系统
第二天:往数据仓库中导入一个主题域的相关数据,引起用户对数据仓库进行分析处理的初步兴趣。
第三天:导入更多的数据到数据仓库,吸引更多用户的兴趣。
第四天:所有需要的数据开始完全载入,大量的用户对他进行访问,直到进入数据库的竞争成为一个障碍。
第五天:数据仓库的使用急剧增长,直接针对数据库的访问模式已经不能满足需要,部门级处理(数据集市)开始兴起。
第六天:部门级处理更受欢迎,用户的注意力更集中于此。
第n天:体系结构得到充分发展,生产系统的原始处理只剩下操作型处理,数据仓库中拥有了丰富的数据,大部分DSS分析级处理都集中在部门级处理。
4、粒度
粒度指的数据仓库中数据单元的细节程度或综合程度的级别。细节程度越高,粒度级就越低,细节程度越低,粒度级就越高。
例如,一个简单的交易处于低粒度,每月所有交易汇总则处于一个高粒度级。
4、1 粒度的好处
(1)粒度化是重用性的关键,不同的粒度可以提供给不同部门的不同的数据支持。
(2)粒度化的数据包含了整个企业的活动和事件的历史,足够详细的粒度级别使得整个企业的数据能够为满足不同的需求而进行重构。
4、2 双重粒度
当一个企业拥有大量的数据时,在数据仓库细节部分考虑使用双重(或多重)粒度级别是很有意义的,事实上总是需要多重粒度级别,而不是单粒度级别。
双重粒度级别几乎是每个机构的缺省选择。
一般双重粒度级别分为轻度综合数据和最低粒度级,通常最低粒度级存放在真实档案层。
(1)轻度综合数据是只经过很小程度综合的细节数据,其数据量要比细节数据库中的数据量小很多,同时对能访问的细节级别存在一定的限制。
(2)数据的真实档案层,存储了所有来自于操作形环境的细节,拥有最多的数据量,能够满足任何查询需求。
5、探查与数据挖掘
数据仓库中的粒度化数据不仅可以支持数据集市,而且可以支持数据探查和数据挖掘。探查与数据挖掘需要大量历史细节数据以从中找出以前未知的新颖的
商业活动模式。数据仓库包含了对探查与数据挖掘工具非常有用的数据源。
6、活样本数据库
活样本数据库是从数据仓库中取得的真实档案数据或轻度综合数据的一个子集。样本是指他是一个更大数据库的一个子集(样本),活是指这个数据库需要进行周期刷新。他是另一种改变粒度的使用方法。在某些情况下(如人口统计分析或概要生成),活样本数据库是非常有用的,但是对活样本数据库的使用有 一些严格的限制。除非设计者清楚地知道这些限制,否则就不应该使用。
6、1 限制:
(1)活样本数据库不是通用的数据库,适用于作统计分析和观察发展趋势,当数据必须以整体观察时,活样本数据库能提供非常理想的结果,但决不适用于处理单个的数据记录。
(2)建立活样本数据库的一个重要问题是如何装载数据,这决定了活样本数据库中的数据量以及其中数据的随机程度,通常数据量是数据仓库的1/100或
1/1000。对活样本数据库中记录的选取一般是随机的,必要时可以采用一个“判断样本”(即记录必须达到一定标准才能被选中)。
6、2 优势,最大好处是存取效率非常高。
7、分区设计方法
数据仓库中数据的第二个主要设计问题(粒度问题之后)是分区。数据分区是指把数据分散到可独立处理的分离物理单元中去。在数据仓库中,围绕分区问题的焦点不是该不该分区而是如何去分区的问题。人们常说,如果粒度和分区都做得好的话,则数据仓库设计和实现的几乎所有其他问题都很容易解决。
恰当的进行分区可以给数据仓库在多个方面带来好处:数据装载、数据访问、数据存档、数据删除、数据监控、数据存储。恰当的进行分区使得数据可以增长并且可以进行管理。
7、1 数据分区
如何对细节数据进行分区?
(1)对当前细节数据进行分区的目的是把数据划分成小的且可以管理的物理单元。因为当数据存放在大的物理单元中,以下任务无法轻松进行:
重构、索引、顺序扫描(若需要)、重组、恢复、监控。
(2)数据仓库的本质之一就是灵活地访问数据。如果是大快的数据,就达不到这一要求。因而,对所有当前的细节数据仓库数据必须进行分区。
(3)当结构相似的数据被分到多个数据的物理单元时,数据便被分区了。此外,任何给定的数据单元属于且仅属于一个分区。
(4)有多种分区的标准:时间、业务范围、地理位置、组织单位、所有以上标准。
数据分区的标准是完全由开发人员来决定的,然而,在数据仓库环境中,日期几乎总是分区标准的一个必然组成部分。
将人寿保险公司如何选择数据分区标准作为一个例子,来看看下列的数据的物理单元:
2000年健康索赔、2001年健康索赔、2002健康索赔、2000年意外伤亡索赔、2001年意外伤亡索赔、2002年意外伤亡索赔。
这个保险公司使用了日期和索赔类型(业务类型)作为分区的标准。
(5)数据分区可以采用多种分区方式完成,应用层还是系统层?
a、在系统层上进行分区在一定程度上是某些DBMS和操作系统的一种功能。
b、在应用层上进行分区是由设计的应用程序代码完成的,而且只由开发者和程序员严格控制的,此时DBMS和操作系统就不知道一个分区与另一个分区之间的关系。
c、通常在应用层上对数据仓库数据分区是很有意义的。因为在应用层上每年的数据可以有不同的定义。2000年和2001年的数据定义,可以相同也可以不相同。
仓库中数据的本质是长期积累的数据。
d、当在系统层上分区时,DBMS不可避免地希望只有一种数据定义。假定数据仓库中保存的数据时间比较长(如达到十年),而且数据定义经常变化,让本应该只有一种数据定义的DBMS或操作系统去管理这个系统将是毫无意义的。
e、在应用层而不是系统层(DBMS层)上管理数据分区的另一重要特点是可以将数据从一个处理设备转移到另一个处理设备而不会带来问题。在数据仓库环境中, 当工作负载和数据量成为真正的负担时,这就成为一个真正的优点。
f、对数据分区最严峻的考验是提出这样的问题:”能否在分区中加入索引而不会明显地妨碍其他操作?“
8、数据仓库中的数据组织
从操作型环境的日常事物记录综合成数据仓库记录通常根据组织到数据仓库的主题域来进行。
8、1 简单堆积结构。
以逐个记录为基础堆积的数据就是简单堆积结构,通常事物处理是一天来综合的,称为简单逐日堆积数据,如对一个顾客的一个帐号的每天的所有活动进行合计, 并在一天的基础上进入数据仓库。
8、2 轮转综合数据
数据采用与简单堆积相同的处理方法从操作型环境进入到数据仓库环境中。然而,在轮转综合数据中,数据被载入到一种完全不同的结构中。第一周的七天中的活动被逐一综合到七个对应的日槽中,到了第八天,将七个日槽加到第一个周槽中。然后,第八天的每日总计加到第一个日槽中。月底将各个周槽加到一起,并放入到第一个月槽中,然后各个周槽清零。到了年底,将每个月槽加到一起,放入到第一个年槽中,然后每个月槽清零。
8、3 简单直接文件
数据仅仅是从操作型环境被拖入到数据仓库环境中,并没有任何累积。另外,简单直接文件不是在每天的基础上组织的,而是以较长时间为单位的,他是操作型数据的间隔一定时间的一个快照。
依照两个或更多的简单直接文件能生成一种连续文件。例如:将一月到十二月的两个数据快照合并,就可以创建表示从第一个月到最后一个月的连续数据。
8、4 在关键字层,数据仓库的关键字总是复合关键字,这有两种强制性的理由:
(1)日期----年、年/月、年/月/日-----几乎总是关键字的一部分。
(2)因为数据仓库中的数据是分区的,分区的不同部分表现为关键字的一部分。
9、数据仓库:标准手册
由于数据仓库与许多人息息相关,而且在大多数机构中,数据仓库还是一个新事物,因此需要一种正式方式对数据仓库中的内容和它的使用方式进行解释和说明,即标准手册。主要应该包括以下内容:
(1)描述什么是数据仓库。
(2)描述为数据仓库输送数据的源系统。
(3)如何使用数据仓库。
(4)有了问题如何获得帮助。
(5)谁负责什么?
(6)仓库的迁入计划。
(7)仓库数据如何与操作型数据相关连。
(8)如何为DSS使用仓库数据。
(9)什么时候不往仓库中加数据。
(10)仓库里没有什么数据?
(11)可利用的元数据的指示。
(12)记录系统是什么?
10、审计与数据仓库
能够对数据仓库进行审计,然而更多的理由表示即使能够对数据仓库进行审计也不应该从中进行审计。主要原因如下:
(1)原先在数据仓库中没有的数据会突然出现。
(2)当需要审计能力时,数据进入数据仓库的时间标定过程会发生急剧变化。
(3)当需要审计能力时,数据仓库的备份和恢复限制会发生急剧变化。
(4)在仓库中申计数据,会使仓库中的数据只能处于最低级别上。
11、成本合理性分析(略)
12、数据的同构/异构
(1)数据仓库中数据的所有记录类型都是相同的,但是其数据是有许多不同种类的,其中的数据被划分到被称为主题域的划分中,如有产品、顾客、销售商及交易几个主题域。
(2)数据的第一次划分是按照公司的主要主题进行的,但是对每一个主题域还有更细的划分,主题域中的数据又划分到多个表中。设有多个表构成了数据仓库中的产品主题域。其中每个表都有自己的数据,但这一主题域中的每一个表又共享同一主线--产品,即键/外键单元。
(3)在构成主题域的物理表中还有更细的划分。这些划分是按照出现数据值的差异创建的。例如,在产品发货表中,有一月发货、二月发货、等。
(4)因此数据仓库中的数据按照下列标准进行划分:主题域、表、数据在表中的出现。
13、数据仓库中的数据清理,
有以下几种方式:
(1)数据加入到失去原有细节的一个轮转综合文件中。
(2)数据从高性能的介质转移到大容量低速介质上。
(3)数据从系统中被真正清除。
(4)数据从体系结构的一个层次转移到另一个层次,比如从操作层转到数据仓库层。
14、报表与体系化结构环境
14、1 操作型报表
(1)主要是行式项目,即使有综合的,也很少或不重要。
(2)对于办事人员是很重要的。
14、2 数据仓库报表
(1)即使有行式项目也很少甚至没有用,汇总或其他计算非常重要。
(2)对于管理层人员是很重要的。
15、各种环境中的操作型窗口
(1)数据仓库是DSS处理的基础,其中包含的都是档案数据,操作型环境也会包含一部分档案数据。
(2)在操作型环境中的档案数据的时间范围称之为数据的”操作型窗口“。
(3)操作型环境中的档案数据的数量一般不大,而且访问频繁。
(4)不同行业的操作型时间窗口是各不相同的,甚至也因为一个行业的数据和活动类型不同而不同。
(5)操作型窗口的长度对DSS分析员而言是很重要的,因为它决定了分析员在哪里进行不同的分析和能做什么类型的分析。
a、对操作型窗口能够找到的数据进行单项分析,而不能作大的长期趋势分析。
b、操作型窗口的数据适合高效单个访问,只有当数据移出操作型窗口后,才适合进行大量数据的存储和访问。
c、在操作型窗口之外的的数据能够被整体地访问和处理,而访问任何一个单个数据单元都是不理想的。
16、数据仓库中的错误数据
错误数据不可避免,关键是如何处理?至少有三种选择,且没有完全适宜的方法,只能因地制宜。
例如,假设7月1日在操作型系统中,帐户ABC加入了一条5000美元的帐目。7月2日在数据仓库中为帐户ABC产生了这5000美元帐目的一个快照。接着在8月15日发现了错误,这一帐目应该是750美元。如何纠正数据仓库中的数据?
(1)方法1:进入到7月2日的数据仓库找到错误项,直接将5000美元更新为750美元。如果这样做的话无疑是一种干净彻底的解决方案,但它却引起了新问题:
a、数据集成被破坏,所有在7月2日到8月16日之间生成的报表都将失去一致性。
b、更新必须在数据仓库环境中进行。
c、许多时候不是要修改一个条目,而是多条。
(2)方法2:加入修正条目。8月16日加入两个条目,一条是-5000美元,一条是+750美元。这是数据仓库中7月2日到8月16日之间数据仓库中最新数据的最好
反映。缺点是:
a、许多时候不是要修改一个条目,而是多条。
b、有时侯由于修正公式非常复杂以致于根本不可能进行调整。
(3)方法3:重新设置8月16日帐户为正确数值。8月16日的帐目反映了当时帐户余额,而不考虑以前的活动。8月16日加入了一条750美元的条目。缺点是:
a、及时简单地将帐户重设为当前值需要对应用与过程进行约定。
b、这种重设的方法不能对过去的错误进行准确的解释。
17 小结
(1)数据的粒度和分区是进行数据仓库设计决策的两个最重要方面。对于大部分机构来说应该采用双重粒度。数据分区通常应该实在应用层而不是系统层。
(2)数据仓库最好以反复的方式进行。首先建立数据仓库的一部分,然后再建立另一部分。
(3)数据仓库环境中的每一个数据单元都有一个时间与它关联。一些情况是应用于单条记录,一些情况是应用于整个表。数据经常是按天、月或季度汇总的。
另外数据以一种连续的方式被创建。数据的内部时间组织可以用多种方式实现。
(4)审计不应当在数据仓库中进行。
(5)数据仓库中数据的生命周期包含了数据的清理。