数据仓库和数据挖掘的
OLAP技术
数据仓库-数据挖掘的有效平台
? 数据仓库中的数据清理和数据集成,是数据挖
掘的重要数据预处理步骤
? 数据仓库提供 OLAP工具,可用于不同粒度的
数据分析
? 很多数据挖掘功能都可以和 OLAP操作集成,
以提供不同概念层上的知识发现
? 分类
? 预测
? 关联
? 聚集
什么是数据仓库?
? 数据仓库的定义很多,但却很难有一种严格的
定义
? 它是一个提供决策支持功能的数据库,它与公司的
操作数据库分开维护。
? 为统一的历史数据分析提供坚实的平台,对信息处
理提供支持
? 数据仓库区别于其他数据存储系统
?,数据仓库是一个面向主题的、集成的、随时间而
变化的、不容易丢失的数据集合,支持管理部门的
决策过程,”—W,H,Inmon
数据仓库关键特征一 ——面向主题
? 面向主题,是数据仓库显著区别于关系数据库
系统的一个特征
? 围绕一些主题,如顾客、供应商、产品等
? 关注决策者的数据建模与分析,而不是集中于组织
机构的日常操作和事务处理。
? 排除对于决策无用的数据,提供特定主题的简明视
图。
数据仓库关键特征二 ——数据集成
? 一个数据仓库是通过集成多个异种数据源来构
造的。
? 关系数据库,一般文件,联机事务处理记录
? 使用数据清理和数据集成技术。
? 确保命名约定、编码结构、属性度量等的一致性。
? 当数据被移到数据仓库时,它们要经过转化。
数据仓库关键特征三 ——随时间而变

? 数据仓库是从历史的角度提供信息
? 数据仓库的时间范围比操作数据库系统要长的多。
? 操作数据库系统, 主要保存当前数据。
? 数据仓库,从历史的角度提供信息(比如过去 5-10 年)
? 数据仓库中的每一个关键结构都隐式或显式地包含
时间元素,而操作数据库中的关键结构可能就不包
括时间元素。
数据仓库关键特征四 ——数据不易丢

? 尽管数据仓库中的数据来自于操作数据库,但
他们却是在物理上分离保存的。
? 操作数据库的更新操作不会出现在数据仓库环境下。
? 不需要事务处理,恢复,和并发控制等机制
? 只需要两种数据访问,
? 数据的初始转载和数据访问(读操作)
数据仓库的构建与使用
? 数据仓库的构建包括一系列的数据预处理过程
? 数据清理
? 数据集成
? 数据变换
? 数据仓库的使用热点是商业决策行为,例如,
? 增加客户聚焦
? 产品重定位
? 寻找获利点
? 客户关系管理
数据仓库与异种数据库集成
? 异种数据库的集成方法
? 传统的异种数据库集成,( 查询驱动 )
? 在多个异种数据库上建立包装程序( wrappers)和中介程
序( mediators )
? 查询驱动方法 ——当从客户端传过来一个查询时,首先使
用元数据字典将查询转换成相应异种数据库上的查询;然
后,将这些查询映射和发送到局部查询处理器
? 数据仓库, ( 更新驱动 )
? 将来自多个异种源的信息预先集成,并存储在数据仓库中,
供直接查询和分析
查询驱动方法和更新驱动方法的比较
? 查询驱动的方法
? 需要负责的信息过滤和集成处理
? 与局部数据源上的处理竞争资源
? 对于频繁的查询,尤其是涉及聚集(汇总)操作的
查询,开销很大(决策支持中常见的查询形式)
? 更新驱动的方法(带来高性能)
? 数据经预处理后单独存储,对聚集操作提供良好支

? 不影响局部数据源上的处理
? 集成历史信息,支持负责的多维查询
数据仓库与操作数据库系统
? 操作数据库系统的主要任务是联机事务处理
OLTP
? 日常操作, 购买,库存,银行,制造,工资,注册,
记帐等
? 数据仓库的主要任务是联机分析处理 OLAP
? 数据分析和决策支持,支持以不同的形式显示数据
以满足不同的用户需要
OLAP VS,OLTP (1)
? 用户和系统的面向性
? 面向顾客(事务) VS,面向市场(分析)
? 数据内容
? 当前的、详细的数据 VS,历史的、汇总的数据
? 数据库设计
? 实体-联系模型 (ER)和面向应用的数据库设计 VS,
星型 /雪花模型和面向主题的数据库设计
OLAP VS,OLTP (2)
? 数据视图
? 当前的、企业内部的数据 VS,经过演化的、集成的
数据
? 访问模式
? 事务操作 VS,只读查询(但很多是复杂的查询)
? 任务单位
? 简短的事务 VS,复杂的查询
? 访问数据量
? 数十个 VS,数百万个
OLAP VS,OLTP (3)
? 用户数
? 数千个 VS,数百个
? 数据库规模
? 100M-数 GB VS,100GB-数 TB
? 设计优先性
? 高性能、高可用性 VS,高灵活性、端点用户自治
? 度量
? 事务吞吐量 VS,查询吞吐量、响应时间
为什么需要一个分离的数据仓库?
? 提高两个系统的性能
? DBMS是为 OLTP而设计的:存储方式,索引,并发控制,恢复
? 数据仓库是为 OLAP而设计:复杂的 OLAP查询,多维视图,
汇总
? 不同的功能和不同的数据,
? 历史数据, 决策支持需要历史数据,而这些数据在操作数据
库中一般不会去维护
? 数据汇总:决策支持需要将来自异种源的数据统一(如聚集
和汇总)
? 数据质量, 不同的源使用不一致的数据表示、编码和格式,
对这些数据进行有效的分析需要将他们转化后进行集成
多维数据模型 (1)
? 数据仓库和 OLAP工具基于多维数据模型
? 在多维数据模型中,数据以数据立方体 (data
cube)的形式存在
? 数据立方体 允许以多维数据建模和观察。它由 维 和 事
实 定义
? 维 是关于一个组织想要记录的视角或观点。每个维都有一个
表与之相关联,称为 维表 。
? 多维数据模型围绕中心主题组织,该主题用 事实表 表

? 事实表 包括事实的名称或度量以及每个相关维表的关键字
? 事实 指的是一些数字度量
多维数据模型 (2) ——示例
time_key day
day_of_the_week
month
quarter
year
time 维表
location_key
street
city
state_or_province
country
location 事实表
Sales 事实表
time_key
item_key
branch_key
location_key
units_sold
dollars_sold
avg_sales
度量
item_key
item_name
brand
type
supplier_type
item 维表
branch_key
branch_name
branch_type
branch 维表
多维数据模型 (3)
? 在数据仓库中,数据立方体是 n-D的 (n维)
? (关系表和电子表格是几维的?)
? 示例
? AllElectronics的销售数据按维 time,item的 2-D视图 (P30,表
2-2)
? AllElectronics的销售数据按维 time,item和 location的 3-D视
图 (P30,表 2-3)
? AllElectronics的销售数据按维 time,item和 location的 3-D视
图的 3-D数据立方体表示 (P31,图 2-1)
? 销售数据的 4-D立方体表示 (P31,图 2-2)
? 多维数据模型为不同角度上的数据建模和观察提供了
一个良好的基础
多维数据模型 (4)
? 在数据仓库的研究文献中,一个 n维的数据的立
方体叫做 基本方体 。给定一个维的集合,我们
可以构造一个 方体的格,每个都在不同的汇总
级或不同的数据子集显示数据,方体的格称为
数据立方体 。 0维方体存放最高层的汇总,称作
顶点方体 ;而存放最底层汇总的方体则称为 基
本方体 。
数据立方体 ——一个方体的格
all
time item location supplier
time,item time,location
time,supplier
item,location
item,supplier
location,supplier
time,item,location
time,item,supplier
time,location,supplier
item,location,supplier
time,item,location,supplier
0-D(顶点 ) 方体
1-D方体
2-D 方体
3-D 方体
4-D(基本 ) 方体
数据仓库的概念模型
? 最流行的数据仓库概念模型是多维数据模型。这种模
型可以以星型模式、雪花模式、或事实星座模式的形
式存在。
? 星型模式( Star schema), 事实表在中心,周围围绕地连接
着维表(每维一个),事实表含有大量数据,没有冗余。
? 雪花模式( Snowflake schema), 是星型模式的变种,其中
某些维表是规范化的,因而把数据进一步分解到附加表中。
结果,模式图形成类似于雪花的形状。
? 事实星座( Fact constellations), 多个事实表共享维表,这
种模式可以看作星型模式集,因此称为星系模式( galaxy
schema),或者事实星座( fact constellation)
星型模式实例
time_key day
day_of_the_week
month
quarter
year
time
location_key
street
city
state_or_province
country
location
Sales Fact Table
time_key
item_key
branch_key
location_key
units_sold
dollars_sold
avg_sales
Measures
item_key
item_name
brand
type
supplier_type
item
branch_key
branch_name
branch_type
branch
雪花模式实例
time_key
day
day_of_the_week
month
quarter
year
time
location_key
street
city_key
location
Sales Fact Table
time_key
item_key
branch_key
location_key
units_sold
dollars_sold
avg_sales
Measures
item_key
item_name
brand
type
supplier_key
item
branch_key
branch_name
branch_type
branch
supplier_key
supplier_type
supplier
city_key
city
state_or_province
country
city
事实星座模式实例
time_key
day
day_of_the_week
month
quarter
year
time
location_key
street
city
province_or_state
country
location
Sales Fact Table
time_key
item_key
branch_key
location_key
units_sold
dollars_sold
avg_sales
Measures
item_key
item_name
brand
type
supplier_type
item
branch_key
branch_name
branch_type
branch
Shipping Fact Table
time_key
item_key
shipper_key
from_location
to_location
dollars_cost
units_shipped
shipper_key
shipper_name
location_key
shipper_type
shipper
一种数据挖掘查询语言, DMQL
? DMQL首先包括定义数据仓库和数据集市的语言原语,
这包括两种原语定义:一种是立方体定义,一种是维定义
? 立方体定义 (事实表 )
define cube <cube_name> [<dimension_list>],
<measure_list>
? 维定义 (维表 )
define dimension <dimension_name> as
(<attribute_or_subdimension_list>)
? 特殊案例 (共享维表的定义 )
? 第一次作为维表定义, cube definition”
? 然后,define dimension <dimension_name> as
<dimension_name_first_time> in cube
<cube_name_first_time>
实例:使用 DMQL定义星型模式
define cube sales_star [time,item,branch,location],
dollars_sold = sum(sales_in_dollars),avg_sales =
avg(sales_in_dollars),units_sold = count(*)
define dimension time as (time_key,day,day_of_week,
month,quarter,year)
define dimension item as (item_key,item_name,brand,
type,supplier_type)
define dimension branch as (branch_key,
branch_name,branch_type)
define dimension location as (location_key,street,city,
province_or_state,country)
实例:使用 DMQL定义雪花模式
define cube sales_snowflake [time,item,branch,location],
dollars_sold = sum(sales_in_dollars),avg_sales =
avg(sales_in_dollars),units_sold = count(*)
define dimension time as (time_key,day,day_of_week,month,
quarter,year)
define dimension item as (item_key,item_name,brand,type,
supplier(supplier_key,supplier_type))
define dimension branch as (branch_key,branch_name,
branch_type)
define dimension location as (location_key,street,city(city_key,
province_or_state,country))
实例:使用 DMQL定义事实星座模式
define cube sales [time,item,branch,location],
dollars_sold = sum(sales_in_dollars),avg_sales =
avg(sales_in_dollars),units_sold = count(*)
define dimension time as (time_key,day,day_of_week,month,quarter,
year)
define dimension item as (item_key,item_name,brand,type,
supplier_type)
define dimension branch as (branch_key,branch_name,branch_type)
define dimension location as (location_key,street,city,province_or_state,
country)
define cube shipping [time,item,shipper,from_location,to_location],
dollar_cost = sum(cost_in_dollars),unit_shipped = count(*)
define dimension time as time in cube sales
define dimension item as item in cube sales
define dimension shipper as (shipper_key,shipper_name,location as
location in cube sales,shipper_type)
define dimension from_location as location in cube sales
define dimension to_location as location in cube sales
度量的分类
? 一个数据立方体的度量是一个 数值 函数,该函数可以对数据立方
体的每一个点求值。
? (刚才的示例中用的是什么函数? )
? 度量可以根据其所用的聚集函数分为三类,
? 分布的 (distributive):将函数用于 n个聚集值得到的结果和将函数用
于所有数据得到的结果一样。
? 比如,count(),sum(),min(),max()等
? 代数的 (algebraic):函数可以由一个带 M个参数的代数函数计算
( M为有界整数),而每个参数值都可以有一个分布的聚集函数求
得。
? 比如,avg(),min_N(),standard_deviation()
? 整体的 (holistic):描述函数的子聚集所需的存储没有一个常数界。
? 比如,median(),mode(),rank()
5-6
王 灿
数据挖掘
sjwj@dlc.zju.edu.cn
0703004
概念分层 (1)
? 一个概念分层( concept hierarchy)定义一个
映射序列,将低层概念映射到更一般的高层概

? E.g,表示 location的概念:杭州 ?浙江 ?中国 ?亚

? 概念分层允许我们在各种抽象级审查和处理数据
? 概念分层可以由系统用户、领域专家、知识工
程师人工的提供,也可以根据数据分布的统计
分析自动的产生
概念分层 (2),location维的一个概念分

all
Europe North_America
Mexico Canada Spain Germany
Vancouver
M,Wind L,Chan
..,
...,.,
...,.,
..,
all
region
office
country
Toronto Frankfurt city
许多概念分层的定义隐含在数
据库的模式中。比如,location
维的定义,
office<city<country<region;这
些属性 按一个全序相关,形成
一个层次结构,
year
day
quarter
month week
维的属性也可以组成一个偏
序,形成一个格,
概念分层 (3) ——使用
? 概念分层为不同级别上的数据汇总提供了一个良好的
基础
? 综合概念分层和多维数据模型的潜力,可以对数据获
得更深入的洞察力
? 通过在多维数据模型中,在不同的维上定义概念分层,使得
用户在不同的维上从不同的层次对数据进行观察成为可能。
? 多维数据模型(数据立方体)使得从不同的角度对数
据进行观察成为可能,而概念分层则提供了从不同层
次对数据进行观察的能力;结合这两者的特征,我们
可以在多维数据模型上定义各种 OLAP操作,为用户
从不同角度不同层次观察数据提供了灵活性,
多维数据模型上的 OLAP操作 (1)
? 上卷 (roll-up):汇总数据
? 通过一个维的概念分层向上攀升或者通过维规约
? 当用维归约进行上卷时,一个或多个维由给定的数据立方体删除
? 下钻 (drill-down):上卷的逆操作
? 由不太详细的数据到更详细的数据,可以通过沿维的概念分层向下
或引入新的维来实现 (为给定数据添加更多细节 )
? 切片和切块 (slice and dice)
? 切片操作在给定的数据立方体的一个维上进行选择,导致一个子方
? 切块操作通过对两个或多个维进行选择,定义子方
多维数据模型上的 OLAP操作 (2)
? 转轴 (pivot)
? 立方体的重定位,可视化,或将一个 3维立方体转化为
一个 2维平面序列
? 转轴是一种 可视化 操作,通过转动当前数据的视图来提
供一个数据的替代表示
? 其他 OLAP操作
? 钻过 (drill_across):执行涉及多个事实表的查询
? 钻透 (drill_through):使用关系 SQL机制,钻到数据立方
体的底层,到后端关系表
? 其他 OLAP操作可能包括列出表中最高或最低的 N项,
以及计算移动平均值、增长率、利润、统计函数等等
数据仓库设计:一个商务分析框架 (1)
? 数据仓库给商业分析专家提供了什么?
? 通过提供相关数据与信息,获得竞争优势
? 通过有效的收集精确的描述组织的数据,获得生产力的提高
? 通过提供不同级别(部门、市场、商业)的客户视图,协助
客户关系管理
? 通过追踪长期趋势、异常等,降低成本
? 有效构建数据仓库的关键:理解和分析商业需求
? 通过提供一个商业分析框架,综合各种不同的数据使用者的
视图
数据仓库设计:一个商务分析框架 (2)
? 数据仓库设计的四种视图
? 自顶向下视图
? 允许我们选择数据仓库所需的相关信息
? 数据源视图
? 揭示被操作数据库系统所捕获、存储和管理的信息
? 数据仓库视图
? 由事实表和维表所组成
? 商务查询视图
? 从最终用户的角度透视数据仓库中的数据
数据仓库设计:一个商务分析框架 (3)
? 数据仓库的构建与使用涉及多种技能
? 商业技能
? 理解系统如何存储和管理数据
? 数据如何提取
? 数据如何刷新
? 技术方面的技能
? 如何通过使用各种数据或量化的信息,到处可以提供决策支持
的模式、趋势、判断等
? 如何通过审查历史数据,分析发展趋势等
? 计划管理技能
? 如何通过与不同的技术、厂商、用户交互,来及时、有效、经
济的提交结果
数据仓库的设计过程 (1)
? 自顶向下法、自底向上法或者两者的混合方法
? 自顶向下法:由总体设计和规划开始
? 在技术成熟、商业理解透彻的情况下使用
? 自底向上法:以实验和原型开始
? 常用在模型和技术开发的初期,可以有效的对使用的技术
和模型进行评估,降低风险
? 混合方法:上述两者的结合
? 从软件过程的观点
? 瀑布式方法:在进行下一步前,每一步都进行结构化和系统
的分析
? 螺旋式方法:功能渐增的系统的快速产生,相继版本之间间
隔很短
数据仓库的设计过程 (2)
? 典型的数据仓库设计过程
? 选取待建模的 商务过程
? 找到所构建的数据仓库的主题,比如:销售、货运、订单
等等
? 选取商务过程的 颗粒度
? 数据起始于多细的颗粒度,比如:记录每条详细订单,或
是开始于每日的汇总数据
? 选取用于每个事实表记录的 维
? 常用的维有:时间、货物、客户、供应商等
? 选取将安放在事实表中的 度量
? 常用的数字度量包括:售价、货物数量等
三层数据仓库架构 (1)
数据仓库
提取
清理
转换
装入
刷新
OLAP服务器
查询报告
分析
数据挖掘
监控,
整合 元数据 存储
数据源 前端工具
输出
数据集市
操作数据库
其他外部
信息源
数据仓库服务器
OLAP服务器
三层数据仓库架构 (2)
? 底层:数据仓库的数据库服务器
? 关注的问题:如何从这一层提取数据来构建数据仓
库(通过 Gateway( ODBC,JDBC,OLE/DB等)来
提取)
? 中间层,OLAP服务器
? 关注的问题,OLAP服务器如何实施(关系型
OLAP,多维 OLAP等)
? 前端客户工具层
? 关注的问题:查询工具、报表工具、分析工具、挖
掘工具等
三种数据仓库模型
? 从体系结构的角度去看,数据仓库模型可以有以下三
种,
? 企业仓库
? 搜集关于跨越整个组织的主题的所有信息
? 数据集市
? 企业范围数据的一个子集,对于特定的客户是有用的。其范围
限于选定的主题,比如一个商场的数据集市
? 独立的数据集市 VS,非独立的数据集市(数据来自于企业数据仓库)
? 虚拟仓库
? 操作数据库上的一系列视图
? 只有一些可能的汇总视图被物化
数据仓库开发:困难与方法
? 数据仓库开发上的困难
? 自顶向下的开发方法从全系统的角度提供解决方案,使得
(模块)集成的问题最小;但是该方法十分昂贵,需要对组
织进行长期研究和建模分析。
? 自底向上方法提供了更多的开发灵活性,价格便宜;但往往
会遇到集成问题(每个模块单独运行都没有问题,但是一集
成就出异常)
? 解决方法,
? 使用递增性、演化性的开发方法
? 高层数据模型 ?企业仓库和数据集市并行开发 ?通过分布式
模型集成各数据集市 ?多层数据仓库
数据仓库开发 ——一个推荐的方法
定义高层数据模型
数据
集市
数据
集市
分布式数据
集市
多层数据仓库
企业数据仓库
模型提炼 模型提炼
OLAP服务器类型 (1)
? 逻辑上,OLAP服务器从数据仓库或数据集市
中给商业用户提供多维数据
? 物理上,OLAP的底层数据存储实现可以有多
种不同的方式
? 关系 OLAP服务器 (ROLAP)
? 使用关系数据库或扩展的关系数据库存放并管理数据仓库
的数据,而用 OLAP中间件支持其余部分
? 包括每个 DBMS后端优化,聚集导航逻辑的实现,附加的
工具和服务
? 较大的可扩展性
OLAP服务器类型 (2)
? 多维 OLAP服务器 (MOLAP)
? 基于数组的多维存储引擎(稀疏矩阵技术)
? 能对预计算的汇总数据快速索引
? 混合 OLAP服务器 (HOLAP)
? 结合上述两种技术,更大的使用灵活性
? 特殊的 SQL服务器
? 在星型和雪花模型上支持 SQL查询
数据仓库的实现
——数据立方体的有效计算
? 数据仓库中的 OLAP查询是一种海量数据计算 (想象
一下对过去 10年各地区的软件产品销售的汇总查询)
? 用户却希望这个计算能在数秒钟内完成
? 解决方法在于给出一种有效的计算数据立方体的方法
? 数据立方体可以被看成是一个 方体的格
? 最底层的方体是基本方体
? 最顶端的方体(顶点)只包含一个单元的值
? 一个 n维的数据立方体,每维 L层,可能产生的方体总数
是多少?
)1
1
( ??
?
? n
i i
LT
(item) (city)
()
(year)
(city,item) (city,year) (item,year)
(city,item,year)
方体的操作
? DMQL中的方体定义和计算
? define cube sales[item,city,year],sum(sales_in_dollars)
? compute cube sales
? 上述的 compute cube子句可以转化为一个类似于 SQL的语句
? SELECT item,city,year,SUM (amount)
? FROM SALES
? CUBE BY item,city,year
? 这个相当于 SQL中以下的 group by子句
? (item,city,year) –3D
? (item,city),(item year),(city,year) —2D
? (item),(city),(year) —1D
? () --0D
(item) (city)
()
(year)
(city,item) (city,year) (item,year)
(city,item,year)
数据立方体的物化
? 数据立方体的 物化 可以有以下三种选择,
? 全物化
? 预先计算所有方体
? 不物化
? 不预先计算任何“非基本”方体
? 部分物化
? 有选择的计算一个所有方体的适当子集
? 考虑因素,(1)确定要物化的方体; (2)在查询时利用物化的方体;
(3)在装载和刷新时,有效的更新物化的方体
? 确定物化哪些方体
? 考虑工作负荷下的查询、它们的频率和它们的开销等等
)1
1
( ??
?
? n
i i
LT
方体计算,ROLAP vs,MOLAP
? 方体计算的挑战,海量数据,有限的内存和时间
? 基于 ROLAP的方法(底层使用关系模型存储数据)
? 将排序、散列 (hashing)和分组操作应用于维的属性,以便对
相关元组重新排序和聚类
? 在某些子聚集上分组,作为“部分分组步骤”。
? 可以由以前计算的聚集计算新的聚集,而不必有基本事实表
计算
? 基于 MOLAP方法(底层使用多维数组存储数据)
? 多路数组聚集的计算方法
? 将数组切成块(每个块都可以整个装入内存)
? 通过访问各个块来计算汇总值
方体计算的多路数组聚集方法 (1)
? 将数组分成块( chunk,一个可以装入内存的小子方)
? 通过访问立方体单元,计算聚集。可以优化访问单元组的次序,
使得每个单元被访问的次数最小化,从而减少内存访问和磁盘 I/O
的开销。
A(month)
40个值
B
29 30 31 32
1 2 3 4
5
9
13 14 15 16
64 63 62 61 48 47 46 45
a1 a0
c3 c2
c1 c 0
b3
b2
b1
b0
a2 a3
C(item)
4000个值
B(city)
400个值
44 28
56 40
24 52
36 20
60 哪个是多路数组
聚集的最佳遍历
次序?
方体计算的多路数组聚集方法 (2)
A(month)
40
B
29 30 31 32
1 2 3 4
5
9
13 14 15 16
64 63 62 61
48 47 46 45
a1 a0
c3 c2
c1 c 0
b3
b2
b1
b0
a2 a3
C(item)
4000
44
28 56
40 24
52 36
20
60
B(city)
400
方体计算的多路数组聚集方法 (3)
A
B
29 30 31 32
1 2 3 4
5
9
13 14 15 16
64 63 62 61
48 47 46 45
a1 a0
c3 c2
c1 c 0
b3
b2
b1
b0
a2 a3
C
44
28 56
40 24
52 36
20
60
B
方体计算的多路数组聚集方法 (4)
? 方法:各平面要按他们大小的升序排列进行排序和计

? 详见书 P50 例 2.12 (P52 图 2-16有误 )
? 思想:将最小的平面放在内存中,对最大的平面每次只是取
并计算一块
A B C
B CA CA B
A B
C
a l l
内 存 空 间 需 求 最 大 的 块 计 算 次 序
A B C
B CA CA B
A B C
a l l
内 存 空 间 需 求 最 小 的 块 计 算 次 序
方体计算的多路数组聚集方法 (5)
? 根据 1到 64的扫描次序,在块内存中保存所有
相关的 2-D平面所需的最小存储为,
? 40× 400(用于整个 AB平面)+ 40× 1000(用于
AC平面一行)+ 100× 1000(用于 BC平面一块 )=
156,000
? 这种方法的限制:只有在维数比较小的情况下,
效果才比较理想 (要计算的立方体随维数指数
增长 )
? 如果维的数目比较多,可以考虑使用“自底向上的
计算”或者时“冰山方体” 计算
OLAP查询的有效处理
? 确定哪些操作应当在可利用的方体上执行,
? 将查询中的选择、投影、上卷和下钻等操作转化为
对应的 SQL或 /和 OLAP操作,如,dice = selection
+ projection
? 确定相关操作应当使用哪些物化的方体
? 找寻 MOLAP中可以利用的索引结构以及压缩的或
是稠密的数组结构
有效处理 OLAP查询(示例)
立方体的定义为,sales[time,item,location],sum(sales_in_dollar)
time的维层次 day<week<month<quater<year
location的维层次 street<city<province_or_state<country
item的维层次 item_name<brand<type
现在要处理一个 year= 2000,定位在 brand和 province_or_state级别
的查询,现有四个可用的已经物化的方体,
{item_name,city,year}
{brand,country,year}
{brand,province_or_state,year}
{item_name,province_or_state}其中 year= 2000
Question:以上四个方体,选那个来处理查询? (要考虑计算的量,
以及可以使用的索引等因素)
元数据存储
? 在数据仓库中,元数据就是定义数据仓库对象的数据。
有以下几种,
? 数据仓库结构的描述
? 仓库模式、视图、维、层次结构、导出数据的定义,以及数据
集市的位置和内容
? 操作元数据
? 包括数据血统 (data lineage)、数据类别 (currency of data),以
及监视信息
? 汇总用的算法
? 由操作环境到数据仓库的映射
? 关于系统性能的数据
? 索引,profiles,数据刷新、更新或复制事件的调度和定时
? 商务元数据
? 商务术语和定义、数据拥有者信息、收费政策等
元数据的使用
? 元数据与数据一起,构成了数据仓库中的数据模型,
元数据所描述的更多的是这个模型的结构方面的信息。
? 在数据仓库中,元数据的主要用途包括,
? 用作目录,帮助决策支持系统分析者对数据仓库的内容定义
? 作为数据仓库和操作性数据库之间进行数据转换时的映射标

? 用于指导当前细节数据和稍加综合的数据之间的汇总算法,
指导稍加综合的数据和高度综合的数据之间的汇总算法。
数据仓库后端工具和程序
? 数据仓库后端工具主要指的是用来装入和刷新数据的
工具,包括,
? 数据提取,
? 从多个外部的异构数据源收集数据
? 数据清理
? 检测数据种的错误并作可能的订正
? 数据变换
? 将数据由历史或主机的格式转化为数据仓库的格式
? 装载
? 排序、汇总、合并、计算视图,检查完整性,并建立索引和分 区
? 刷新
? 将数据源的更新传播到数据仓库中
数据仓库的应用
? 数据仓库的三种应用
? 信息处理
? 支持查询和基本的统计分析,并使用交叉表、表、图标和图进
行报表处理
? 分析处理
? 对数据仓库中的数据进行多维数据分析
? 支持基本的 OLAP操作,切块、切片、上卷、下钻、转轴等
? 数据挖掘
? 从隐藏模式中发现知识
? 支持关联分析,构建分析性模型,分类和预测,并用可视化工
具呈现挖掘的结果
? 三种应用间的差别
从联机分析处理到联机分析挖掘
? 为什么要联机分析挖掘
? 数据仓库中有高质量的数据
? 数据仓库中存放着整合的、一致的、清理过的数据
? 围绕数据仓库的信息处理结构
? 存取、集成、合并多个异种数据库的转换,
ODBC/OLEDB连接,Web访问和访问工具等
? 基于 OLAP的探测式数据分析
? 使用上卷、下钻、切片、转轴等技术进行数据挖掘
? 数据挖掘功能的联机选择
? 多种数据挖掘功能、算法和任务的整合
联机分析挖掘的体系结构
数据仓库
元数据
多维数
据库
OLAM
引擎
OLAP
引擎
用户图形界面 API
数据方体 API
数据库 API
数据清理
数据集成
第三层
OLAP/OLAM
第二层
多维数据库
第一层
数据存储
第四层
用户界面
数据的过滤、集成 过滤
数据库
基于约束的
数据挖掘
挖掘结果