Schalal

04 数据仓库和联机分析处理

4.1 基本概念

数据仓库合并、泛化多维空间的数据。构造数据仓库涉及数据清洗、数据集成和数据变换,可以看作是数据挖掘的一个重要预处理步骤。此外,数据挖掘提供OLAP(Online Analytical Processing,联机分析处理)工具,用于各种粒度(granularity)多维数据的交互分析,这有利于有效的数据繁华和数据挖掘。

4.1.1 什么是数据仓库

数据仓库是一种数据库,它与单位的操作数据库分别维护,数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持,其特性为:

4.1.2 操作数据库和数据仓库的区别

  OLTP OLAP
面向性 面向顾客,用于事务和查询处理 面向市场,用于数据分析
数据内容 一般而言较为琐碎,很难用与决策 管理大量历史数据,在不同粒度上存储管理,易于用于决策
数据库设计 E-R模型,面向应用 星形或雪花模型,面向主题
视图 主要关注一个部门的当前数据 可能涉及多个部门的历史数据
访问模式 主要由小的原子事务构成,需要并发控制和恢复机制 大部分是只读操作,即只访问
度量 事务吞吐量 查询吞吐量、响应时间

4.1.3 为什么需要分离的数据仓库

  1. 有助于提高两个系统的性能:操作数据库是为已知的任务和负载设计的,如使用主键索引和散列检索特定的记录;数据仓库的查询通常是复杂的,涉及大量数据在汇总级别上的计算。在操作数据库上进行OLAP查询,可能会大大降低其性能;
  2. 操作数据库支持多事务的并发处理需要控制和恢复机制以确保事务的一致性和鲁棒性,而数据仓库只需要对汇总数据进行只读访问,如果将OLTP的并发控制和恢复机制应用于OLAP,则会大大降低OLTP系统的吞吐量;
  3. 二者在结构、内容和用法上是不相同的,如操作数据库一般不维护历史数据。

4.1.4 数据仓库的一种多层体系结构

  1. 底层是仓库数据库服务器,其一般是一个RDBMS,使用后端工具和应用程序,从操作数据库和其他外部数据源提取数据,并进行清理和变换,放入底层;
  2. 中间层是OLAP服务器,典型实现使用ROLAP模型(即扩充的关系DBMS,将多维数据上的操作映射为标准的关系操作)或MOLAP(即多维OLAP,直接实现多维数据的操作);
  3. 顶层是前端客户层,其包括查询和报告工具、分析工具和数据挖掘工具。

4.1.5 数据仓库模型

仓库类别 概述
企业仓库(Enterprise Warehouse) 搜集了关于主题的所有信息,通常包含细节数据和汇总数据
数据集市(Data Mart) 包含企业范围数据的一个子集,对特定用户群是有用的
虚拟仓库(Virtual Warehouse) 操作数据库上视图的集合

4.1.6 数据提取、变换和装入

4.1.7 元数据库

元数据是描述数据的数据,元数据库则是数据仓库体系的底层,对于给定的数据仓库的数据名和定义,创建定义数据仓库对象的元数据,应包括对数据仓库结构(仓库模式、视图、维、分层结构、导出数据)的描述、对操作元数据、汇总算法、系统性能相关的数据等内容。

4.2 数据仓库建模

4.2.1 数据立方体

数据仓库基于多维数据模型,这种模型被称为数据立方体(Data Cube),某一特定维度的数据立方体称作方体(cuboid),存放最底层的方体称作基本方体(base cuboid),0-D方体是最高层的汇总,称作顶点方体(apex cuboid)。

4.2.2 多维数据模型的模式

模式名 描述
星形模式(star schema) 包括一个大的中心表(事实表(fact table),包含大批量数据且不含冗余)和一组小的附属表(维表(dimension tables),每维一个),维表可能会有冗余
雪花模式(snowflake schema) 是星形表的变种,其中某些表被规则化,数据被进一步分解到附加表中减少了冗余但不便查询
事实星座(fact constellation) 可看作多个星形表的汇总(有多个事实表),也被称作星系模式(galaxy schema)

4.2.3 概念分层

概念分层定义一个映射序列,将低层概念集映射到较高层。形成数据库模式中属性的概念分层的过程称作模式分层

4.2.4 度量

数据立方体度量是一个数值函数,该函数可以对数据立方体空间的每个点求值,通过给定各点的维-值数据,计算该点的度量值,可以分为三类:

类别 描述
分布的(distributive) 对单个对象分别应用和对整体的应用效果一样,如count()、max()
代数的(algebraic) 使用有限个分布聚集函数求函数值的函数,如average()
整体的(holistic) 不能由代数运算求得函数值的函数,如rank()

4.2.5 典型的OLAP操作

OLAP提供了分析建模机制,能在每一粒度上产生汇总、聚集和分层。

4.3 数据仓库的设计与使用

4.3.1 商务分析框架

考虑一下四种View:

类型 描述
自顶向下 选择DC所需的相关信息
数据源 被操作DBMS收集、存储和管理的信息
数据仓库 事实表和维表
商务查询 从最终用户角度透视数据仓库

4.3.2 设计过程

三种方法:自顶向下的(由总体设计和规划开始,前提是技术成熟、对问题有良好把握)、自底向上的(由实验和原型开始,可以快速实现和应用,适合商务建模和数据开发的早期阶段)、混合方法。

一般步骤:

4.4 数据仓库的实现

物化,materialization,指选择性地计算全体立方体的子集,如冰山立方体(只存放某聚集值大于阈值的单元)和外壳立方体(只预计算少量维的立方体)

索引操作包括位图索引(bitmap indexing,即对属性使用二值向量表示)和连接索引(join indexing,对事实表和维表进行连接)两种方式

4.5 数据泛化:面向属性的归纳