88
第2第 第第第第第第 本本本本本本 本本本本本本本本本 本本本本本本 本本本本本本本本本 本本本本本本本 本本本本本本本 本本本 本本本本本本本本本本本本本 本本本本本本本本 本本本本本本本本 本本本本本本本本

第 2 章 数据仓库原理

Embed Size (px)

DESCRIPTION

第 2 章 数据仓库原理. 本章学习目标: 掌握数据仓库的定义,四个基本特征 掌握数据集市的概念,与数据仓库区分 掌握数据仓库的体系结构 掌握数据仓库中数据组织方式 掌握数据处理过程 掌握元数据的概念、元数据管理的原理. 第 2 章 数据仓库原理. 2.1 数据仓库定义 2.2 数据集市 2.3 数据仓库体系结构 2.4 数据组织结构和形式 2.5 数据抽取 E 、转换 T 和装载 L ( ETL ) 2.6 元数据管理. 2.1 数据仓库定义. - PowerPoint PPT Presentation

Citation preview

第 2 章 数据仓库原理 本章学习目标:

掌握数据仓库的定义,四个基本特征 掌握数据集市的概念,与数据仓库区分 掌握数据仓库的体系结构 掌握数据仓库中数据组织方式 掌握数据处理过程 掌握元数据的概念、元数据管理的原理

第 2 章 数据仓库原理 2.1 数据仓库定义 2.2 数据集市 2.3 数据仓库体系结构 2.4 数据组织结构和形式 2.5 数据抽取 E 、转换 T 和装载 L ( ETL ) 2.6 元数据管理

2.1 数据仓库定义 William H.Inmon: 数据仓库是一个面向主题

的、集成的、非易失的且随时间变化的数据集合,用于支持管理人员的决策。

数据仓库之父 --Bill Inmon

四个基本特征 数据仓库的数据是面向主题的 数据仓库的数据是集成的 数据仓库的数据是非易失的 数据仓库的数据是随时间不断变化的

面向主题 主题( Subject ):特定的数据分析领域与

目标。 面向主题:为特定的数据分析领域提供数据

支持。

面向主题 为特定数据分析领域提供的数据与传统数据库中的

数据是有不同的。传统数据库中的数据是原始的、基础的数据,而特定分析领域数据则是需要对它们作必要的抽取、加工与总结而形成。

数据仓库是面向分析、决策人员的主观要求的,不同的用户有不同的要求,同一个用户的要求也会随时间而经常变化,因此,数据仓库中的主题有时会因用户主观要求的变化而变化的。

面向主题示例 例:一个面向事务处理的“商场”数据库系统,其数

据模式如下采购子系统:订单(订单号,供应商号,总金额,日期)订单细则(订单号,商品号,类别,单价,数量)供应商(供应商号,供应商名,地址,电话)

销售子系统:顾客(顾客号,姓名,性别,年龄,文化程度,地址,电话)

销售(员工号,顾客号,商品号,数量,单价,日期)

面向主题示例库存管理子系统:领料单(领料单号,领料人,商品号,数量,日期)进料单(进料单号,订单号,进料人,收料人,日期)库存(商品号,库房号,库存量,日期)库房(库房号,仓库管理员,地点,库存商品描述)

人事管理子系统:员工(员工号,姓名,性别,年龄,文化程度,部门号)部门(部门号,部门名称,部门主管,电话)

面向主题示例 上述数据模式基本上是按照企业内部的业务活动及

其需要的相关数据来组织数据的存储的,没有实现真正的数据与应用分离,其抽象程度也不够高。

如果按照面向主题的方式进行数据组织,首先应该抽取主题,即按照管理人员的分析要求来确定主题,而与每个主题相关的数据又与有关的事务处理所需的数据不尽相同。

主题一:商品 商品固有信息:商品号,商品名,类别,颜色等 商品采购信息:商品号,供应商号,供应价,供应日期,供应量等

商品销售信息:商品号,顾客号,售价,销售日期,销售量等

商品库存信息:商品号,库房号,库存量,日期等

主题二:供应商 供应商固有信息:供应商号,供应商名,地址,电话等 供应商品信息:供应商号,商品号,供应价,供应日期,供应量等

主题三:顾客 顾客固有信息:顾客号,顾客名,性别,年龄,文化程度,住址,电话等

顾客购物信息:顾客号,商品号,售价,购买日期,购买量等

面向主题 在每个主题中,都包含了有关该主题的所有信息,同时又抛弃

了与分析处理无关或不需要的数据,从而将原本分散在各个子系统中的有关信息集中在一个主题中,形成有关该主题的一个完整一致的描述。面向主题的数据组织方式所强调的就是要形成一个这样一致的信息集合。

不同的主题之间也有重叠的内容,但这种重叠是逻辑上的,而不是物理存储上的重叠;是部分细节的重叠,而不是完全的重叠。

面向主题 每个主题所需数据的物理存储:

多维数据库( MDDB—Multi-Dimensional DataBase )用多维数组形式存储数据。

关系数据库。用一组关系来组织数据的存储,同一主题的一组关系都有一个公共的关键字,存放的也不是细节性的业务数据,而是经过一定程度的综合形成的综合性数据。

集成的 数据是分散的;由于事务处理应用分散、蜘蛛

网问题、数据不一致问题、外部数据和非结构化数据。

数据仓库中的数据是为分析服务的,而分析需要多种广泛的不同数据源以便进行比较、鉴别,因此数据仓库中的数据必须从多个数据源中获取,这些数据源包括多种类型数据库、文件系统以及 Internet 网上数据等,它们通过数据集成而形成数据仓库中的数据。

集成的 集成的方法:

统一:消除不一致的现象 综合:对原有数据进行综合和计算

需要考虑的问题: 数据格式 计量单位 数据代码含义混乱 数据名称混乱

非易失的 数据仓库中的数据是经过抽取而形成的分析型数据,不具有原

始性,主要供企业决策分析之用,执行的主要是‘查询’操作,一般情况下不执行‘更新’操作。同时,一个稳定的数据环境也有利于数据分析操作和决策的制订。

但这也不等于数据仓库中的数据不需要‘更新’操作。 在需要进行新的分析决策时,可能需要进行新的数据抽

取和‘更新’操作 数据仓库中的一些过时的数据,也可以通过‘删除’操

作丢弃掉。

因此数据仓库的存储管理相对于 DBMS 来说要简单得多。

随时间不断变化 数据仓库中的数据必须以一定时间段为单位进行统一更新。 不断增加新的数据内容 不断删去旧的数据内容 更新与时间有关的综合数据

2.2 数据集市( Data Mart ) 建立数据集市的原因

数据仓库是一种反映主题的全局性数据组织。但是 ,全局性数据仓库往往太大,在实际应用中将它们按部门或个人分别建立反映各个子主题的局部性数据组织 ,它们即是数据集市。因此,有时我们也称它为部门数据仓库。

例:在有关商品销售的数据仓库中可以建立多个不同主题的数据集市: 商品采购数据集市 库房使用数据集市 商品销售数据集市

数据集市类型 按照数据获取来源:

独立型:直接从操作型环境获取数据。 从属型:从企业级数据仓库获取数据。

建设途径 从 全局数据仓库 到 数据集市

从 数据集市 到 全局数据仓库

数据仓库 VS 数据集市 数据仓库与数据集市的关系类似于传统关系数据库系统

中的基表与视图的关系。 数据集市的数据来自数据仓库,它是数据仓库中数据的

一个部分与局部,是一个数据的再抽取与组织的过程。

2.3 数据仓库体系结构 数据仓库系统由数据仓库( DW)、仓库管

理和分析工具三部分组成

ORACLEORACLE SYBASESYBASE SQL ServerSQL Server 文 件文 件

……

数据集市数据集市 数据集市数据集市 数据集市数据集市

数 据 建 模数 据 建 模 数据仓库 元数据管理元数据管理

抽 取抽 取

……

数据仓库系统示意图

分析工具( OLAP 、数据挖掘)分析工具( OLAP 、数据挖掘)

过程模型

数据仓库管理系统

元数据

多维关系数据库

多维数据库

外部操作型数据

数据抽取数据清洁数据装载

管理平台

报表查询工具

数据挖掘工具

OLAP 工具

仓库管理-数据建模 数据建模是建立数据仓库的数据模型。 数据仓库的数据模型不同于数据库的数据模

型在于: 数据仓库只为决策分析用,不包含事务处理的

数据。 数据仓库的增加了时间属性数据。 数据仓库增加了一些综合数据。

数据仓库的数据建模是适应决策用户使用的逻辑数据模型。

仓库管理-元数据管理 最基本的元数据相当于数据库系统中的数据字典。 元数据定义了数据仓库有什么,指明了数据仓库中

数据的内容和位置,刻画了数据的抽取和转换规则,存储了与数据仓库主题有关的各种商业信息,而且整个数据仓库的运行都是基于元数据的。 数据源的元数据 数据模型的元数据 数据仓库映射的元数据 数据仓库使用的元数据

仓库管理-数据处理 异构数据源:

企业内部数据 存档的历史数据 企业的外部数据。 软硬件平台不一致

ETL过程 抽取( Extraction ) 转换( Transform ) 装载( Load)

分析工具-查询工具 数据仓库的查询不是指对记录级数据的查询,

而是指对分析要求的查询。一般包含: 可视化工具:以图形化方式展示数据,可以帮助了解数据的结构,关系以及动态性。

分析工具-多维分析工具 通过对信息的多种可能的观察形式进行快速、一致和交互性的存取,这样便利用户对数据进行深入的分析和观察。

多维数据的每一维代表对数据的一个特定的观察视角,如时间、地域、业务等。

分析工具-数据挖掘工具 从大量数据中挖掘具有规律性知识,需要利

用数据挖掘( Data Mining)工具。

数据仓库的运行结构数据仓库的运行结构 两层数据仓库结构

数据仓库数据

元数据

数据仓库服务器

•数据逻辑•数据服务•元数据•文件服务

客户端

•图形用户接口 /表示逻辑•查询规范•数据分析•报表格式•总结•数据访问

数据仓库的运行结构数据仓库的运行结构 多层数据仓库结构

多维数据服务器

数据仓库数据

元数据

•数据逻辑•数据服务•元数据•文件服务

数据仓库服务器应用服务器

•图形用户接口•查询规范•数据分析•报表格式•数据访问

客户端

•过滤•总结•元数据•多维视图•数据访问

2.4 数据组织结构和形式 典型的数据仓库的数据组织结构

高度综合级 轻度综合级 当前细节级 早期细节级

数据粒度 粒度是指数据仓库的数据单位中保存数据的

细化或综合程度的级别。 粒度问题是设计数据仓库的一个最重要方面。

粒度的一个例子 能回答,但需要一定量的检索

不能回答,缺少细节信息

粒度权衡

数据分割 数据分割是指把数据分散到各自的物理单元

中去,它们能独立地处理。 分割是数据仓库中数据的第二个主要的设计

问题 分割问题的焦点不是该不该分割而是如何去

分割的问题。

数据分割例子

处理集 A

处理集 B

数据分割的本质 数据分割的本质之一就是灵活地访问数据。

数据分割标准数据分割的标准是严格地由开发人员来选择的。 时间。 商业线。 地理位置。 组织单位。 所有上述标准。 然而,按日期几乎总是分割标准中的一个必然组成

部分。

数据组织形式 数据仓库中有多种数据组织形式:

简单堆积数据结构 轮转综合数据结构 简单直接文件 连续文件

简单堆积数据结构 每日从数据库中提取并加工数据逐天积累。 最简单最常用的数据组织形式

轮转综合数据结构 简单逐日堆积数据的一种变种。 数据用与前面相同的处理方法从操作型环境输入到数据仓库环境中,只是在轮转综合文件中的数据才被输入到不同的结构形式中。

每日事物处理

每日综合天

1 2 3 4 5 6 7

1 2 3 4 5。。。

。。。

简单堆积 VS 轮转综合 轮转综合数据结构与数据的简单堆积结构相比,仅处理非常少的数据单元。

简单直接文件 数据仅仅是从操作型环境拖入数据仓库环境

中,并没有任何累积。 是间隔一定时间的操作型数据的一个快照。

不是在每天的基础上组织的,而是以较长时间为单位的,比如一个星期或一个月。

连续文件 通过两个连续的简单直接文件,可以生成另

一个连续文件 连续文件也可以通过把一个快照追加到一个以前生成的连续文件上来创建

连续文件 连续文件也可以通过把一个快照追加到一个以前生成的连续文件上来创建

数据存储 虚拟存储方式 基于关系表的存储方式 多维数据库组织

虚拟存储方式 没有专门的数据仓库数据存储,数据仓库中

的数据仍然在源数据库中。只是根据用户的多维需求及形成的多维视图临时在源数据库中找出所需要的数据,完成多维分析。 优点:组织方式简单、花费少、使用灵活; 缺点:只有当源数据库的数据组织比较规范、

没有数据不完备及冗余,同时又比较接近多维数据模型时,虚拟数据仓库的多维语义才容易定义。而在一般的数据库应用中,这很难做到。

基于关系表的存储方式 将数据仓库的数据存储在关系数据库的表结

构中,在元数据的管理下完成数据仓库的功能。

实体关系( ER)模型一般用于关系型数据库设计,而数据仓库采用 星型 雪片型 事实星座

星型模式 数据仓库中包含

( 1)一个大的包含大批数据和不冗余的事实表(中心表);

( 2 )一组小的附属表,称为维表。每维一个。 事实表中每条元组都含有指向各个维表的外

键和一些相应的测量数据,事实表的记录数量很多,维表中记录的是有关这一维的属性。

星型模式示例

时间键产品键地区键

sales( 事实表)

销售量销售价

time

时间键年季度月星期天

产品键产品类产品名

型号

item

location地区键国家省市

维表

雪花模式 雪花模型对星型模型的维表进一步层次化 原来的各维表可能被扩展为小的事实表,形

成一些局部的“层次”区域。

雪花模式示例

time

时间键年季度月星期天

产品键产品类产品名

型号

item时间键产品键地区键

sales( 事实表)

销售量销售价

location 地区键国家省键

省键省名市键

市键市名

province

city

星型模式 VS 雪花模式 雪花模式的维表可能是规范化的,以便减少冗余。这种表易于维护,并节省存储空间。

实际上,与巨大的事实表相比,这种空间的节省可以忽略。

由于执行查询需要更多的连接操作,雪花结构可能降低浏览的性能。

在数据仓库设计中,雪花模式不如星型模式流行。

事实星座模式 多个事实共享相同的维表

事实星座模式示例

time

时间键年季度月星期天

产品键产品类产品名

型号

item

时间键产品键地区键

sales( 事实表)

销售量销售价

location

地区键国家省市

ship (事实表)产品键时间键起运点终止点运价

数据仓库的数据追加 时标法 前后映像文件方法 DELTA 文件 日志文件

时标法 基本思想:为记录数据增加一个时间标记。 如果数据含有时标,对新插入或更新的数据记录,在其上添加更新时的时标,那么只需根据时标判断即可。

但并非所有数据库中的数据都含有时标。

前后映像文件方法 在抽取数据前后对数据库各做一次快照,然后比较两幅快照从而确定新数据。

它占用大量资源,对性能影响极大,因此无实际意义。

DELTA文件 DELTA文件视图从能够感知数据变化的应

用程序来生成追加文件 利用 DELTA文件效率很高,它避免扫描整

个数据库。 但因应用系统常由不同的软件开发商开发,生成 DELTA文件的应用并不普遍。

日志文件 日志是 DMBS 的固有机制 系统日志能把数据库服务器所执行的所有操

作详细记录下来,通过分析日志获取数据变化情况。

它还具有 DELTA文件的优越性质,提取数据只要局限日志文件即可,不用扫描整个数据库。

固有机制,不影响OLTP性能。

2.5 数据抽取、转换和加载 数据仓库需要将这些源数据经过抽取、转换和装载

的过程,存储到数据仓库的数据模型中。 ETL过程

抽取( Extraction ) 转换( Transform ) 装载( Load)

2.5.1 数据抽取 确认数据源 数据抽取技术

确认数据源 列出对事实表的每一个数据项和事实 列出每一个维度属性 对于每个目标数据项,找出源数据项 一个数据元素有多个来源,选择最好的来源 确认一个目标字段的多个源字段,建立合并规则 确认一个目标字段的多个源字段,建立分离规则 确定默认值 检查缺失值的源数据

数据抽取技术 当前值:源系统中存储的数据都代表了当前

时刻的值。当商业交易时,这些数据是会发生变化的。

周期性的状态:这类数据存储的是每次发生变化时的状态。例如,对于每一保险索赔,都经过索赔开始、确认、评估和解决等步骤,都要考虑有时间说明。

2.5.2 数据转换 T 数据转换的基本功能 数据转换类型 数据整合和合并 如何实施转换

数据转换的基本功能 选择:从源系统中选择整个记录或者部分记录。

分离 /合并:对源系统中的数据进行分离操作或者合并操作。

转化:对源系统进行标准化和可理解化。

汇总:将最低粒度数据进行汇总。

清晰:对单个字段数据进行重新分配和简化 。

数据转换类型( 1)格式修正( 2 )字段的解码( 3)计算值和导出值( 4)单个字段的分离( 5)信息的合并( 6)特征集合转化( 7)度量单位的转化( 8)关键字重新构造( 9)汇总( 10)日期 /时间转化

数据整合和合并 数据整合和合并是将相关的源数据组合成一致的

数据结构,装入数据仓库。 实体识别问题。 数据来源于多个不同的客户系统,对相同客户可能

分别有不同的键码,将它们组合成一条单独的记录。 多数据源相同属性不同值的问题。 不同系统中得到的值存在一些差别 ,需要给出合理的值。

如何实施转换 自己编写程序实现数据转换

使用转换工具

2.5.3 数据装载 L 数据装载方式

数据装载类型

数据装载方式 基本装载。按照装载的目标表,将转换过的数

据输入到目标表中去。 追加。如果目标表中已经存在数据,追加过程在保存已有数据的基础上增加输入数据。

破坏性合并。用新输入数据更新目标记录数据。

建设性合并。保留已有的记录,增加输入的记录,并标记为旧记录的替代。

数据装载类型 初始装载。这是第一次对整个数据仓库进行装载。

增量装载。由于源系统的变化,数据仓库需要装载变化的数据。

完全刷新。这种类型的数据装载用于周期性重写数据仓库。

2.5.4 数据处理的有关讨论 数据库中的空缺值 不一致的数据

由于某种原因的不一致需统一(比如英制与公制) 样本空间的大小 与分析无关的数据不要装入数据仓库 数据离散化

在必要的情况下将连续的数据变换成离散值。比如年龄按 10 岁分段,收入按 1000分段等

数据规范化

数据库中的空缺值 空缺的数据会影响数据挖掘的质量,所以应该处理忽略该元组 问题:若缺少的数据的元组太多,则性能非常差

人工填写空缺值 问题:缺很多值时不可行

使用一个全局常量填空 问题:但由于该常量太多,数据挖掘程序可能会错误的认为是一个有趣的概念。

使用属性的平均值填充空缺值 使用与给定元组属同一类的所有样本的平均值 使用最可能的值填充空缺值

样本空间的大小 如抽取一部分数据进行分析同在整个数据集

合上进行分析的结果是一样的,则取一部分数据进行分析时空效率就高得多。(采用随机抽样、等间隔抽样、聚类后在同一类中抽取等)

数据规范化 最大 -最小规范化 :

对原始数据进行线性变换。假定 minA和 maxA分别为属性 A的最小和最大值,则 :

min' ( _ max _ min ) _ min

max minA

A A AA A

vv new new new

例:假定收入属性的最小与最大分别是 12000 和 98000 ,现在想映射到区间 [0.0 , 0.1] ,则

73600 12000' (1.0 0.0) 0.0 0.716

98000 12000v

数据规范化 z-score规范化(零 -均值规范化)

A

Avv

'

例:假定收入属性的平均值和标准方差分别为 54000 和16000 ,使用 z-score规范化。

225.116000

5400073600'

v

2.5.5 ETL 工具 数据转换引擎

代码生成器

通过复制捕获数据

2.6 元数据管理 元数据是关于数据的数据,是数据仓库环境中一个

重要方面。 元数据在数据仓库的上层,并且记录数据仓库中对象的位置。

典型地,元数据记录: 程序员所知的数据结构。 D S S 分析员所知的数据结构。 数据仓库的源数据。 数据加入数据仓库时的转换。 数据模型。 数据模型和数据仓库的关系。 抽取数据的历史记录。

元数据分类 数据源的元数据 数据模型的元数据 数据仓库映射的元数据 数据仓库使用的元数据

数据源的元数据 这类元数据是对不同平台上的数据源的物理

结构和含义的描述。具体为: 数据源中所有物理数据结构,包括所有的数据项及数据类型。

所有数据项的业务定义。 每个数据项更新的频率,以及由谁或那个过程更新的说明。

每个数据项的有效值。

数据模型的元数据 这组元数据描述了数据仓库中有什么数据以

及数据之间的关系,它们是用户使用管理数据仓库的基础。

这种的元数据可以支持用户从数据仓库中获取数据。

数据模型元数据示例 例如,雇员与技能之间的关系

Employee

E_No

E_S

E_NoS_Code

Skill

S_Code12 13¹Øϵ I/O ¶ÔÏó

I/O Object ID

EmployeeE_SSkill

¹Øϵ³ÉÔ±

R_ID IO_ID

12121313

EmployeeE_SE_SSKill

R_ID

1213

R_ID IO_ID Field_ID

12121313

EmployeeE_SE_SSkill

E_NoE_No

S_CodeS_Code

¹Øϵ¹Ø¼ü×Ö

数据仓库映射的元数据 这类元数据是数据源与数据仓库数据间的映射。

当数据源中的一个数据项与数据仓库建立了映射关系,就应该记下这些数据项发生的任何变换或变动。即用元数据反映数据仓库中的数据项是从哪个特定的数据源填充的,经过那些转换,变换和加载过程。

数据仓库映射的元数据示例 一个数据的抽取要经过许多步骤。如图所示:

源数据与目标数据之间的映射( 1)抽取工作( 2 )抽取工作步骤( 3)抽取表映射( 4)抽取属性映射( 5)记录筛选规则

Ô´Êý¾Ý »ñÈ¡ ¹ýÂË ÑéÖ¤ ÈÚºÏ ×ÛºÏ ×°ÔØ ´æµµ Ä¿±ê

数据仓库使用的元数据 这类元数据是数据仓库中信息的使用情况描述。 数据仓库的用户最关心的是两类元数据:

( 1)元数据告诉数据仓库中有什么数据,它们从哪里来。即如何按主题查看数据仓库的内容。

( 2 )元数据提供已有的可重复利用的查询语言信息。如果某个查询能够满足他们的需求,或者与他们的愿望相似,他们就可以再次使用那些查询而不必从头开始编程。

关于数据仓库使用的元数据能帮助用户到数据仓库查询所需要的信息,用于解决企业问题