Data
Warehouse
数据仓库
概念、设计及应用
报告人:曹顺良报告人:曹顺良
提纲
1.为什么要建立数据仓库
2. 数据仓库的概念及特性
3. 数据仓库的结构
4. 数据仓库的设计
5. 数据仓库的开发过程
6. 数据仓库的典型应用
事务处理环境不适宜DSS应用的原因
事务处理和分析处理的性能特性不同事务处理和分析处理的性能特性不同
操作型处理操作型处理对数据的存取操作频率高而每次操作处理的对数据的存取操作频率高而每次操作处理的
时间短;时间短;
在分析处理环境中,某个在分析处理环境中,某个DSSDSS应用程序可能需要连续几应用程序可能需要连续几
个小时,从而消耗大量的系统资源。个小时,从而消耗大量的系统资源。
数据集成问题数据集成问题
数据动态集成问题数据动态集成问题
历史数据问题历史数据问题
数据的综合问题数据的综合问题
抽取程序
用抽取程序能将数据从高性能联机事务处理方式中转移出用抽取程序能将数据从高性能联机事务处理方式中转移出
来,在需要总体分析数据时就与联机事务处理性能不发生来,在需要总体分析数据时就与联机事务处理性能不发生
冲突。冲突。
用抽取程序能将数据从联机事务处理范围内移出时,数据用抽取程序能将数据从联机事务处理范围内移出时,数据
的控制方式就发生了转变。的控制方式就发生了转变。
蜘蛛网问题
数据缺乏可信性
数据无时基数据无时基
数据算法上的差异数据算法上的差异
抽取的多层次抽取的多层次
外部数据问题外部数据问题
无起始的公共数据源无起始的公共数据源
生产率低
根据全部数据生成企业报表根据全部数据生成企业报表
定位数据需要浏览大量文件定位数据需要浏览大量文件
抽取程序很多,并且每个都是定制的,不得不克服很多技术上抽取程序很多,并且每个都是定制的,不得不克服很多技术上
的障碍。的障碍。
数据转化为信息的不可行性
数据没有集成化数据没有集成化
缺乏将数据转化为信息所需的历史数据缺乏将数据转化为信息所需的历史数据
体系结构设计环境的层次
数据操作层只保存原始数据并且服务于高性能事务处理领域;数据操作层只保存原始数据并且服务于高性能事务处理领域;
数据仓库层存储不更新的原始数据,此外一些导出数据也在此存数据仓库层存储不更新的原始数据,此外一些导出数据也在此存
在;在;
数据的部门层几乎只存放导出数据;数据的部门层几乎只存放导出数据;
在数据个体层中完成大多数启发式分析在数据个体层中完成大多数启发式分析
操作层操作层
原子原子//数数
据仓库层据仓库层 部门层部门层 个体层个体层
数据仓库的概念
数据仓库是在企业管理和决策中面向主题的、集成的、与数据仓库是在企业管理和决策中面向主题的、集成的、与
时间相关的、不可修改的数据集合。时间相关的、不可修改的数据集合。
[ [William ]William ]
与其他数据库应用不同的是,数据仓库更像一种过程,对分与其他数据库应用不同的是,数据仓库更像一种过程,对分
布在企业内部各处的业务数据的整合、加工和分析的过程。布在企业内部各处的业务数据的整合、加工和分析的过程。
数据仓库的特性
面向主题
典型的主题领域:客户;产品;交易;帐目典型的主题领域:客户;产品;交易;帐目
集成的
数据提取、净化、转换、装载数据提取、净化、转换、装载
非易失的
数据仓库的数据通常是一起载入和访问的,但并不进行一数据仓库的数据通常是一起载入和访问的,但并不进行一
般意义上的数据更新般意义上的数据更新
随时间的变化性
数据仓库中的时间期限要远远长于操作型系统中的时间期数据仓库中的时间期限要远远长于操作型系统中的时间期
限(限(5~105~10年);年);
数据仓库中的数据是一系列某一时刻生成的复杂的快照;数据仓库中的数据是一系列某一时刻生成的复杂的快照;
数据仓库的键码结构总是包含某时间元素。数据仓库的键码结构总是包含某时间元素。
数据仓库的结构
早期细节级早期细节级
当前细节级当前细节级
轻度综合级轻度综合级
数据集市数据集市
高度综合级高度综合级
元
数
据
元
数
据
操作型转换操作型转换
数据仓库设计中的几个重要概念
ETL
ETLETL((Extract/Transformation/LoadExtract/Transformation/Load))——用户从数据源用户从数据源
抽取出所需的数据,经过数据清洗、转换抽取出所需的数据,经过数据清洗、转换,,最终按照预先定最终按照预先定
义好的数据仓库模型,将数据加载到数据仓库中去。义好的数据仓库模型,将数据加载到数据仓库中去。
元数据
关于数据的数据,指在数据仓库建设过程中所产生的有关关于数据的数据,指在数据仓库建设过程中所产生的有关
数据源定义,目标定义,转换规则等相关的关键数据。同数据源定义,目标定义,转换规则等相关的关键数据。同
时元数据还包含关于数据含义的商业信息。时元数据还包含关于数据含义的商业信息。
粒度
数据仓库的数据单位中保存数据的细化或综合程度的级别。数据仓库的数据单位中保存数据的细化或综合程度的级别。
细化程度越高,粒度级就越小;相反,细化程度越低,粒细化程度越高,粒度级就越小;相反,细化程度越低,粒
度级就越大。度级就越大。
分割
结构相同的数据被分成多个数据物理单元。任何给定的数结构相同的数据被分成多个数据物理单元。任何给定的数
据单元属于且仅属于一个分割。据单元属于且仅属于一个分割。
典型的元数据包括:
数据仓库表的结构
数据仓库表的属性
数据仓库的源数据(记录系统)
从记录系统到数据仓库的映射
数据模型的规格说明
抽取日志
访问数据的公用例行程序
数据仓库设计中的几个重要概念 (续)
Data Mart
数据集市数据集市 -- -- 小型的,面向部门或工作组级数据仓库小型的,面向部门或工作组级数据仓库。。
Operation Data Store
操作数据存储操作数据存储 — — ODSODS是能支持企业日常的全局应用的数是能支持企业日常的全局应用的数
据集合据集合,,是不同于是不同于DBDB的一种新的数据环境的一种新的数据环境, , 是是DW DW 扩展后得扩展后得
到的一个混合形式。四个基本特点:面向主题的到的一个混合形式。四个基本特点:面向主题的((Subject -Subject -
Oriented)Oriented)、、集成的、可变的、集成的、可变的、 当前或接近当前的。当前或接近当前的。
data model
数据模型数据模型 -- -- ((11)逻辑数据结构,包括由)逻辑数据结构,包括由DBMSDBMS为有效进为有效进
行数据库处理提供的操作和约束;(行数据库处理提供的操作和约束;(22)用于表示数据的系)用于表示数据的系
统(例如,统(例如,ERDERD或关系型模型)。或关系型模型)。
artifact
人工关系人工关系 -- --在在DSSDSS环境中用于表示参照完整性的一环境中用于表示参照完整性的一
种设计技术。种设计技术。
企业数据模型到数据仓库数据模型的转换
除去纯粹用于操作型环境的数据
在企业键码结构中增加时间元素
增加导出数据
创建人工关系
数据模型的规范化/反规范化
为了减少程序在表中的跳转、节省I/O,需将
多个相关的表合并;
引入冗余数据;
当访问概率有很大悬殊时,要对数据做进一步
分离;
在物理数据库的设计中引入导出数据可以减少
I/O;
建立所谓的“创造的”索引或创造的简要记录
(如卷中的前十名顾客是——)
数据仓库体系结构
OLTP
数据源
数据仓库
数据集市
?数据采集及整合
数据的映射规则、模型 。。。 (元数据管理)
数据仓库项目流程管理及系统性能管理和监控
?数据展现及决策
生产
财务
结算
外部
航线
分析
总量
分析
市场
分析InfoPump
数
据
分
析
、
D
M
终端用户
终端用户
从操作型的现存系统到数据仓库中数据
转换工作的难点
现有系统缺乏数据集成,跨越不同应用的数据
集成性很差
存取现存系统的效率,扫描已有文件成了数据
仓库体系结构设计者主要面对的问题
时基的变化
数据要浓缩
概念:数据周期、简要记录
数据周期:是指从操作型数据发生改变起,到这个是指从操作型数据发生改变起,到这个
变化反映到数据仓库中所用的时间变化反映到数据仓库中所用的时间。
从操作型环境知道数据的改变到这个变化反映到数据从操作型环境知道数据的改变到这个变化反映到数据
仓库中至少应该经历仓库中至少应该经历2424小时。小时。
简要记录:或聚集记录,是把不同操作型数据的详或聚集记录,是把不同操作型数据的详
细信息聚集在一个记录中而形成的记录。细信息聚集在一个记录中而形成的记录。
好处:好处:①①减少数据量;减少数据量;
②②为用户的访问和分析提供了一种紧凑的方为用户的访问和分析提供了一种紧凑的方
便的数据组织形式;便的数据组织形式;
缺点:信息的详细程度将会降低。缺点:信息的详细程度将会降低。
数据仓库的建模
数据模型
所有的实体都是平等关系。所有的实体都是平等关系。
仅仅从数据模型的角度来着手设计数据仓库会产生一种仅仅从数据模型的角度来着手设计数据仓库会产生一种““平平
面面””效应。效应。
星型连接
事实表:事实表:位于星型连接的中央,它是被大量载入数据的实位于星型连接的中央,它是被大量载入数据的实
体。体。
维表:周围的其它实体。维表:周围的其它实体。
在很多情况下:文本数据与数值数据是分离开的。在很多情况下:文本数据与数值数据是分离开的。
通过数据预连接和建立有选择的数据冗余,设计者为访问和通过数据预连接和建立有选择的数据冗余,设计者为访问和
分析过程大大简化了数据。分析过程大大简化了数据。
星型连接应用于设计数据仓库中很大的实体,而数据模型则星型连接应用于设计数据仓库中很大的实体,而数据模型则
应用于数据仓库中较小的实体。应用于数据仓库中较小的实体。
Vendor data
Vendor data
Vendor data
vendor_id
供应商
cust_id
客户
order_id
发货
Order data
Order data
order_id
订单
Cust data
Cust data
Cust data
Nonkey data
Order data
Order data
Order data
产品
Product data
Product data
Product data
Product id
Vendor id
Nonkey data
cust id
Nonkey data
order id
Nonkey data
product id
数据建模的十条戒律
①①必须回答紧迫的问题;必须回答紧迫的问题;
②②必须有正确的事实表;必须有正确的事实表;
③③将有正确的维表,描述必须按最终用户的业务术语将有正确的维表,描述必须按最终用户的业务术语
表达;表达;
④④必须理解数据仓库所影响的公司过程或影响数据仓必须理解数据仓库所影响的公司过程或影响数据仓
库的公司过程;库的公司过程;
⑤⑤对于事实表,应该有正确的对于事实表,应该有正确的““粒度粒度””;;
⑥⑥根据需要存储正确长度的公司历史数据;根据需要存储正确长度的公司历史数据;
⑦⑦以一种对于公司有意义的方式来集成所有必要的数以一种对于公司有意义的方式来集成所有必要的数
据;据;
⑧⑧创建必要的总结表;创建必要的总结表;
⑨⑨创建必要的索引;创建必要的索引;
⑩⑩能够加载数据仓库数据库并使它以一种适宜的方式能够加载数据仓库数据库并使它以一种适宜的方式
可用。可用。
数据集市
外部数据
用自顶向下的方法构建数据仓库
数据集市
– 建造企业数据仓库
H 建设中心数据模型
H 一次性的完成数据的重构工作
H 最小化数据冗余度和不一致性
H 存储详细的历史数据
– 从企业数据仓库中建造数据集市
H 得到大部分的集成数据
H 直接依赖于数据仓库的可用性
操作数据
问题
投资效益的时间?
H 建设中心数据模型的必要性和可能性?
初始费用 ?
企业数据仓库
用自底向上的方法构建数据仓库
数据集市
– 建立部门数据集市
H 限制在一个主题区域
H 快速投资收益
H 区域自治 – 设计的可伸缩性强
H 对相关部门的应用容易复制
H 对每个数据集市需要数据重构
H 存在一定的冗余及不一直性
– 逐步扩展到企业数据仓库 (EDW)
H 把建造EDW作为一个长期的目标
存在的问题:
数据集市的数据都是可用的吗?
能生成数据模型吗?
如何解决不一致性?
外部数据
操作数据 (全局)
&
操作数据
(局部)
操作数据
(局部)
数据集市
企业数据仓库
数据仓库的开发过程
建立或获得企业的数据模型;
定义记录系统;
设计数据仓库并按主题领域进行组织;
设计和建立操作型环境中的记录系统和数据仓库
之间的接口,这些接口能保证数据仓库的载入工
作能有序的进行;
开始载入第一个主题领域,进入载入和反馈过程,
数据仓库中的数据在此过程中也在不断地改变。
数据模型的内容
标识主要主题领域。
各个主要主题之间的各种关系。
清晰地定义模型的边界。
把原始数据和导出数据分离。
每个主题领域需要标识
键码键码
属性属性
属性分组之间的关系属性分组之间的关系
多重出现的数据多重出现的数据
数据的类型数据的类型
表达数据模型的最好数据
最实时
最准确
最完备
与外部数据源最近
最具结构兼容性
定义记录系统就是找出现存系统所具有的最好的
数据
将数据模型变为数据仓库要做的主要工作
如果原先没有时间元素的话,时间元素必须加入
到键码结构中
必须清除所有的纯操作型数据
需要将参照完整性关系转换成“人工关系”
将经常需要用到的到处数据假如到设计中
对数据的结构进行调整
增加数据阵列增加数据阵列
增加数据冗余增加数据冗余
在合适的情况下进一步分离数据在合适的情况下进一步分离数据
在合适的时候合并数据表在合适的时候合并数据表
需要做数据的稳定性分析
在接口中需完成的工作
数据抽取
对来自操作型、面向应用型环境的数据的集成
数据时基的变更
数据压缩
对现存系统环境的有效扫描
数据仓库开发成功的关键
关键:是数据体系结构设计者和DSS分析者之
间的反馈循环。
有几点观察结果对数据仓库环境的成功建立是
至关重要的问题:
DSSDSS分析人员一定要严格遵循分析人员一定要严格遵循““给我我所要的东西,然后我给我我所要的东西,然后我
能告诉你我真正需要的东西能告诉你我真正需要的东西””的工作模式;的工作模式;
反馈循环的周期越短,越有可能成功;反馈循环的周期越短,越有可能成功;
需要调整的数据量越大,反馈循环所需要的周期就越长需要调整的数据量越大,反馈循环所需要的周期就越长
数据仓库的应用
在证券业的应用 :可处理客户分析、帐户分析、证券交易数据分析、可处理客户分析、帐户分析、证券交易数据分析、
非资金交易分析等多个业界关心的主题,为客户提供针对其个人习惯、投资组合的投非资金交易分析等多个业界关心的主题,为客户提供针对其个人习惯、投资组合的投
资建议,从而真正作到对客户的贴心服务。资建议,从而真正作到对客户的贴心服务。
在银行领域的应用:防范银行的经营风险、实现科学管理以及进行防范银行的经营风险、实现科学管理以及进行
决策决策 . .
在税务领域的应用:可以解决三个方面的问题:一是查出应税未报者可以解决三个方面的问题:一是查出应税未报者
和瞒税漏税者,并对其进行跟踪;二是对不同行业、产品和市场中纳税人的行为特性和瞒税漏税者,并对其进行跟踪;二是对不同行业、产品和市场中纳税人的行为特性
进行描述,找出普遍规律,谋求因势利导的税务征稽策略;三是对不同行业、产品和进行描述,找出普遍规律,谋求因势利导的税务征稽策略;三是对不同行业、产品和
市场应收税款进行预测,制定最有效的征收计划。市场应收税款进行预测,制定最有效的征收计划。
在保险业的应用 :满满足足保保险险行行业业日日益益增增长长的的各各种种查查询询、、统统计计、、报报表表
以以及及分分析析的的需需求求,,提提高高防防范范和和化化解解经经营营风风险险的的能能力力,,有有效效利利用用这这些些数数据据来来实实现现经经营营目目
标标,,预预测测保保险险业业的的发发展展趋趋势势,,甚甚至至利利用用这这些些数数据据来来设设计计保保险险企企业业的的发发展展宏宏图图,,在在激激烈烈
的竞争中赢得先机的竞争中赢得先机 .
在客户服务及营销方面的应用 :CRMCRM
在保健领域的应用:揭揭示示出出如如何何以以较较低低费费用用获获取取较较高高质质量量的的治治疗疗策策
略趋势和模式略趋势和模式 .
Have Any Questions?
CSLIANG@
mailto:ruanbj@
mailto:ruanbj@
mailto:ruanbj@