1、2015/6/3 1第三章 数据仓库的基本结构Data Warehouse2015/6/3 2 一个完整的数据仓库的体系结构一般由三个层次组成 , 它们是:1) 数据源( Data Source)2) 数据仓库( Data Warehouse)3) 数据集市( Data Mart) 三者之间通过数据仓库管理软件联系起来构成一个完整的 数据体系 。3 数据仓库的基本结构Data Warehouse2015/6/3 3数据仓库管理软件ORACLE SYBASE SQL Server 文 件数据集市 数据集市 数据集市建 模 数据仓库 元数据管理抽 取数据仓库系统示意图3 数据仓库的基本结构Data
2、 Warehouse2015/6/3 4 多数据源 数据仓库的数据来源于多个数据源。 不同格式的数据: 由于企业在长期事务处理过程中随数据库管理系统本身发展,形成了企业内从简单到复杂、从小型到大型的各种,其中有大型关系数据库、对象数据库、桌面数据库、各种非格式化的数据文件等。 不同的数据操作平台 :多种关系数据库操作平台 不同的物理位置 数据源可以是递归的 数据仓库的数据源可以是另外一个 数据仓库 (或 数据集市 )或OLAP服务器 。3.1 数据源Data Warehouse2015/6/3 5数据的抽取 数据的抽取是数据进入仓库的入口。由于数据仓库是一个独立的数据环境,它需要通过抽取过程将
3、数据从联机事务处理系统、外部数据源、脱机的数据存储介质中导入数据仓库。3.1 数据源Data Warehouse2015/6/3 63.1 数据源 数据从数据源到数据仓库 需要完成的功能有: 关键字 输出到数据仓库环境中时需要被重建和转换,一般来说,要加入 “ 时间成分 ” ; 数据要清理:取值范围检查、交叉记录验证、格式检验等; 非关键字数据需要重新格式化:例如 YYYY/MM/DD,需要转化为 DD/MM/YYYY; 多数据源的文件需要合并,合并时要进行关键字解析; 需要提供默认值; 经常需要进行数据的汇总; 需要对数据元素的重命名操作进行跟踪 Data Warehouse2015/6/3
4、 7 数据从数据源到数据仓库 方法: 通过一个语言接口( C、 COBOL等)一次载入一条记录; 使用一种工具全体批量的转载(较快)。 数据抽取软件 ETL工具( Extraction/Transformation/Loading) 清洗工具( Cleaning) 工作:抽取、筛选、清理、加载等 高速装载大量数据: 并行装载:将数据分为几个独立的工作流 设立缓冲区:对数据进行缓冲处理,在缓冲区中合并数据3.1 数据源Data Warehouse2015/6/3 8 数据仓库中的数据 企业内部各个部门当前及其历史上的 细节性业务数据 为了进行分析决策操作而生成的 分析型综合数据 对数据仓库中数据
5、的管理 需要借助 成熟的数据库技术 对其进行存储管理 利用 改造过的关系数据库系统 来组织和管理 DW中的数据。 增加必要的技术:多介质的管理、多接口的实现、数据并行处理等 关闭不需要的技术:事务完整性、行 /页级的锁定、参照完整性等等3.2 数据仓库管理Data Warehouse2015/6/3 9 数据仓库中数据的组织方式与数据库不同,通常采用分级的方式进行组织。 一般包括早期细节数据、当前细节数据、轻度综合数据、高度综合数据以及元数据五部分。 ( 1)早期细节数据:指存储过去的详细数据,它反映了真实的历史情况,也称为历史数据层。通常存储在备用的海量存储器上。 ( 2)当前细节数据:指最
6、近时期的业务数据,它反映了当前业务的情况,数据量大,是数据仓库用户最感兴趣的部分,也称为当前基本数据层。通常存储在直接存储存取设备和磁带上。该层数据一旦过期,就成为早期细节数据。数据仓库的数据组织Data Warehouse2015/6/3 10数据仓库的数据组织高度综合数据层轻度综合数据层当前基本数据层历史数据层元数据Data Warehouse2015/6/3 11数据仓库的数据组织 细节数据的特点 细节数据 =低粒度; 例如: 一个顾客一个月中每次通话的费用(细节); 一个顾客一个月内在某超市每次购买的一种物品(细节); 数据量大; 能够回答任何问题,例如: 张三上个星期给他在杭州的女友
7、打过电话没有?(事务型) 上个月某顾客在某超市一共购买了多少钱的物品? 去年南京大学信息管理系在情报学报上发表了多少篇论文?Data Warehouse2015/6/3 12 ( 3)轻度综合数据:指从当前基本数据中提取出来,以较小的粒度 (时间段)统计而形成的数据。这类数据较细节数据的数据量小得多。数据集市中的数据多为轻度综合数据。 ( 4)高度综合数据:对轻度综合数据再进行综合(粒度变大),即形成高度综合数据。这一层的数据十分精练,损失了大量信息,是一种难决策数据。通常存储在快速且相对昂贵的存储介质上。 ( 5)整个数据的组织结构由元数据统一来组织,它不包含任何业务数据库中的实际数据信息。
8、数据仓库的数据组织Data Warehouse2015/6/3 13数据仓库的数据组织 综合数据的特点 综合数据 =是高粒度; 例如: 一个顾客一个月中通话的总费用(综合); 一个顾客一个月内在某超市购买某物品的总量(综合); 数据量小,综合程度越高,数据量越小 -灵活; 难决策数据,很多细节已经丢失,例如: 张三在上个月有没有打电话到北京?(事务型) 上个月人们平均从南京打出多少个长途电话?(分析型) 上个月某顾客在某超市一共购买了多少钱的物品? 去年南京大学信息管理系在情报学报上发表了多少篇论文?Data Warehouse2015/6/3 14数据的存储和管理 数据仓库的组织管理方式决定
9、了它有别于传统数据库的特性,同时也决定了其对外的数据表现形式。 数据量很大 ( TB万亿、 PB千万亿) 能管理、有效管理:灵活寻址、建立索引、溢出管理 管理多种存储介质 索引和监控数据:二级索引、稀疏索引、动态索引、临时索引技术等等 多技术接口 :用不同技术实现数据的接收和传送3.2 数据仓库管理Data Warehouse2015/6/3 15存储和管理 控制数据存放的物理位置 :在物理块 /页一级上进行控制,存放在合适的位置 并行处理 : DW中数据管理最强大的特征,目的就是极大提高性能 针对决策支持的查询优化 :数据冗余、多语言接口 支持多维分析的查询模式 变长数据的有效管理 :变长数
10、据经常更新和变化,会带来性能问题,例如 char和 varchar 快速恢复数据3.2 数据仓库管理Data Warehouse2015/6/3 16 数据仓库管理层一般由如下几部分组成: 数据仓库管理系统 数据仓库建模 数据抽取与刷新 元数据管理3.2 数据仓库管理Data Warehouse2015/6/3 17 一般采用传统的关系数据库管理系统或其变种来实现数据仓库管理系统 。 如可用 Oracle, Sybase, SQL Server等作适当改进即可成为数据仓库管理系统 。 数据仓库数据的 安全 、 归档 、 备份 、 维护 、 恢复 等工作 , 也需要 利用数据库管理系统 (DBM
11、S)的 现有 功能来实现 。1. 数据仓库管理 - 数据仓库管理系统3.2 数据仓库管理Data Warehouse2015/6/3 18 数据仓库管理系统类型 传统的通用的 DBMS 数据仓库专用的 DBMS:在原来 DBMS基础上的改进 区别: 数据更新的方式:前者具有一般 DBMS的特征 ( 即记录锁定 、 基于事务等 ) , 后者则将特征最小化; 基本数据的管理方式:前者具有自由空间 ( 数据更新时临时数据使用的附加空间 ) , 后者没有自由空间; 索引:前者限制索引数量 , 后者则需要多种索引优化访问 。 物理上的优化:前者是针对事务访问 , 而后者则是针对分析访问 。1. 数据仓库
12、管理 - 数据仓库管理系统3.2 数据仓库管理Data Warehouse2015/6/3 19 数据仓库建模 建立数据仓库的模式。 数据仓库的模式结构 如同数据库的模式设计一样,我们也需要设计建立数据仓库的数据模式。 如果采用关系数据库系统作为数据仓库管理的工具,则数据仓库的模式结构在形式上与关系模式一样。 数据仓库的建模过程 数据仓库的建模方式有别于传统的关系数据库建模,需要有独立的 数据仓库建模工具 作为数据仓库管理工具的一部分。2. 数据仓库管理 - 数据仓库 建模3.2 数据仓库管理Data Warehouse2015/6/3 20 数据抽取 对数据源中数据通过网络进行抽取,并经加工
13、、转换、综合后形成数据仓库中的数据 。 数据刷新 对数据仓库中数据的修改、删除和增加 数据刷新的过程与抽取类似,但刷新的数据量往往小于抽取的数据量。 由于仅需要对修改过的数据进行刷新,因而其实现难度与复杂性要大于数据抽取。3. 数据仓库管理 - 数据的抽取与刷新3.2 数据仓库管理Data Warehouse2015/6/3 21 数据抽取的注意点 必须屏蔽底层数据的结构复杂性和物理位置的复杂性 能够实现对数据仓库中数据的自动刷新 对数据仓库的元数据和数据进行维护 数据抽取的实现方法 通过通用的数据库接口程序或协议从中抽取数据 编制特殊的数据抽取函数进行数据抽取3.1. 数据仓库管理 - 数据
14、抽取3.2 数据仓库管理Data Warehouse2015/6/3 22 数据仓库系统必须能够感知到在 OLTP数据库中数据的变化情况,并及时有效地把这些变化反映到数据仓库中去,以使得数据仓库中的数据能真实地反映实际情况,因此必须对数据仓库进行数据刷新。一般数据刷新的方法包括:3.2. 数据仓库管理 - 数据刷新 时间戳 DELTA文件 建立映象文件 日志文件3.2 数据仓库管理Data Warehouse2015/6/3 23 适用情况 若数据库中的记录有 时间属性 ,则可根据 OLTP数据库中的数据有无更新,以及在执行更新操作时数据的 修改时间 标志来实现数据仓库中数据的动态刷新。 缺点
15、 大多数数据库系统中的数据并不含有时间属性。3.2.1 数据仓库管理 - 数据刷新方法 - 时间戳3.2 数据仓库管理Data Warehouse2015/6/3 24 适用情况 有些 OLTP数据库的应用程序在工作过程中会形成一些 DELTA文件以记录该应用所作的数据修改操作,可根据该 DELTA文件进行数据刷新。 优点 采用此方法可避免对整个数据库的对比扫描,具有较高的刷新效率。 缺点 这样的应用程序并不普遍,修改现有的应用程序的工作量又太大。3.2.2 数据仓库管理 - 数据刷新方法 - DELTA文件3.2 数据仓库管理Data Warehouse2015/6/3 25 实现方法 在上
16、一次数据刷新后对数据库作一次快照 在本次刷新之前再对数据库作一次快照 比较两个快照的不同,从而确定数据仓库的数据刷新操作。 缺点 需要占用大量的系统资源 可能较大地影响原有数据库系统的性能3.2.3 数据仓库管理 - 数据刷新方法 - 建立映象文件3.2 数据仓库管理Data Warehouse2015/6/3 263.2 数据仓库管理 快照:操作型环境数据的拷贝 “事件 - 快照”交互:引起数据仓库数据加载的基本业务交互活动; 某个事件 - 数据快照 - 转移到数据仓库环境 中 事件:业务活动产生的事件 一个重要活动的发生,随机的,例如:一次销售、一次货物入库、一次通话、一次发货; 规律性的
17、时间推移,有规律,例如:一天的结束、一个星期的结束、一个月的结束。Data Warehouse2015/6/3 273.2 数据仓库管理 快照:操作型环境数据的拷贝 快照的组成: 时间:标记快照产生的时间 关键字:标记快照记录的唯一性; 内容:与关键字相关联的非关键字主要数据; 二级数据:形成快照时偶然被捕获并被置入快照中的二级数据,被称作 “关系的人工因素”。 事件 与 快照 一一对应,可以根据快照的情况追踪某一主题领域的所有历史活动(业务事件)。Data Warehouse2015/6/3 28 实现方法 一般 OLTP数据库都有日志文件,可根据 OLTP数据库的日志信息来实现数据仓库的数
18、据刷新。 优点 日志是 OLTP数据库的固有机制 不会影响原有 OLTP数据库的性能 具有比 DELTA文件 和 建立映象文件 更高的刷新效率3.2.4 数据仓库管理 - 数据刷新方法 - 日志文件 在一个数据仓库系统中,可以同时采用上述的四种数据刷新方式,以满足不同数据源的数据刷新需要。3.2 数据仓库管理Data Warehouse2015/6/3 29 元数据 由数据源中的数据到数据仓库中的数据的转换过程,是需要按照一定的规律来进行的,这种规律往往是用一定的 表达式或算法形式 表示,它们被称为数据仓库系统的元数据。 元数据是关于 数据 、操纵数据的 进程 和 应用程序的结构和意义的描述信
19、息。其范围可以是从现实世界的概念上的一般概括,到详细的物理说明。 在数据库中:元数据是对数据库中各个对象的描述。关系数据库中,这种描述就是对表、列、数据库和其他对象的定义。 在数据仓库中:从广义上讲,元数据代表定义数据仓库的 任何对象 ,无论它是一个表、一个列、一个查询、一个业务规则,或者是数据仓库内部的 数据转移规则 等等。4. 数据仓库管理 - 元数据( Metadata) 与 元数据管理3.2 数据仓库管理Data Warehouse2015/6/3 30 元数据 元数据是数据仓库的核心,用于 支持数据的抽取和访问操作 。元数据记录的信息包括: 数据源系统 :数据存取的规范、数据库文档、信息描述、安全性、数据所有者权限等; 数据处理过程 :数据的抽取、加载、清洗、过滤、协调及完成处理所需遵守的规则; 数据的刷新 :数据刷新方式、刷新频率等信息。4. 数据仓库管理 - 元数据( Metadata) 与 元数据管理3.2 数据仓库管理