1、第第3章章 数据挖掘的数据仓库与数据挖掘的数据仓库与OLAP技术技术2第第3章章:数据挖掘的数据仓库与数据挖掘的数据仓库与OLAP技术技术n什么是数据仓库什么是数据仓库?n多维数据模型多维数据模型n数据仓库结构数据仓库结构n数据仓库实现数据仓库实现n数据立方体的进一步发展数据立方体的进一步发展n从数据仓库到数据挖掘从数据仓库到数据挖掘3什么是数据仓库什么是数据仓库?n有不同的方法定义有不同的方法定义,但不是严格的但不是严格的.n是一个决策支持数据库是一个决策支持数据库,它与组织机构的操作数据库它与组织机构的操作数据库分分别别维护维护n数据仓库系统允许将各种应用系统集成在一起数据仓库系统允许将各
2、种应用系统集成在一起,为统一为统一的历史数据分析提供坚实的平台的历史数据分析提供坚实的平台,支持信息处理支持信息处理.nW.H.Inmon的定义的定义:数据仓库是数据仓库是 面向主题的面向主题的(subject-oriented),集成的集成的(integrated),时变的时变的(time-variant),和和非易非易失的失的(nonvolatile)数据集合数据集合,支持管理决策过程支持管理决策过程n建立数据仓库建立数据仓库(Data warehousing):n构造和使用数据仓库的过程构造和使用数据仓库的过程4数据仓库数据仓库面向主题的面向主题的n围绕重要的主题围绕重要的主题(如顾客、
3、产品、销售等如顾客、产品、销售等)组织组织.n关注决策制定者的数据建模与分析关注决策制定者的数据建模与分析,而不是日常的操作和而不是日常的操作和事务处理事务处理.n数据仓库排除对于决策过程无用的数据数据仓库排除对于决策过程无用的数据,提供特定主题的提供特定主题的简明视图简明视图.5数据仓库数据仓库 集成的集成的n通过将多个异种的数据源集成在一起通过将多个异种的数据源集成在一起,而构造而构造n比如,关系数据库比如,关系数据库,一般文件一般文件,联机事务记录联机事务记录n使用数据清理和数据集成技术使用数据清理和数据集成技术.n确保命名约定确保命名约定,编码结构编码结构,属性度量等的一致性属性度量等
4、的一致性n例如例如,饭店价格饭店价格:货币种类货币种类,税税,是否含早餐是否含早餐,等等.n当数据装入数据仓库时当数据装入数据仓库时,数据将被转换数据将被转换.6数据仓库数据仓库 时变的时变的n数据仓库的时间跨度显著地比操作数据库长数据仓库的时间跨度显著地比操作数据库长.n操作数据库数据操作数据库数据:当前值数据当前值数据.n数据仓库数据数据仓库数据:从历史的角度提供数据从历史的角度提供数据(例如例如,过去过去 5-10 年年)n数据仓库中的每个键结构数据仓库中的每个键结构n显式或隐式地包含时间元素显式或隐式地包含时间元素,n但是但是,操作数据的键可能包含操作数据的键可能包含,也可能不包含也可
5、能不包含“时间元时间元素素”.7数据仓库数据仓库 非易失的非易失的n从操作环境转换过来的数据物理地分离存放从操作环境转换过来的数据物理地分离存放.n数据的更新不在数据仓库环境中出现数据的更新不在数据仓库环境中出现.n不需要事务处理不需要事务处理,恢复恢复,和并发控制机制和并发控制机制n只需要两种数据存取操作只需要两种数据存取操作:n数据的初始化装入数据的初始化装入 和和 数据访问数据访问.8数据仓库和异种数据仓库和异种DBMSn传统的异种数据库集成传统的异种数据库集成:n在异种数据库上建立一个包装程序在异种数据库上建立一个包装程序(wrappers)或中介程序或中介程序(/mediators)
6、n查询驱动查询驱动的方法的方法n当查询提交给一个站点时当查询提交给一个站点时,使用元数据词典将查询转换使用元数据词典将查询转换成所涉及成所涉及的异构站点的异构站点上的相应查询上的相应查询,查询的结果被集成查询的结果被集成为一个全局回答的集合为一个全局回答的集合 n需要:复杂需要:复杂的信息过滤的信息过滤,对资源的竞争对资源的竞争n数据仓库数据仓库:更新驱动的更新驱动的,高性能高性能n来自异种信息源的数据被预先集成并存储在数据仓库中来自异种信息源的数据被预先集成并存储在数据仓库中,直接用于查询和分析直接用于查询和分析9数据仓库数据仓库VS.操作数据库操作数据库nOLTP(on-line tran
7、saction processing,联机事务处理联机事务处理)n传统关系传统关系 DBMS的主要任务的主要任务n涵盖日常操作涵盖日常操作:购买购买,库存库存,银行银行,制造制造,工资单工资单,注册注册,记帐记帐,等等.nOLAP(on-line analytical processing,联机分析处理联机分析处理)n数据仓库系统的主要任务数据仓库系统的主要任务n数据分析和决策制定上提供服务数据分析和决策制定上提供服务n不同的特点不同的特点(OLTP vs.OLAP):n用户和系统的面向性用户和系统的面向性:顾客顾客 vs.市场市场n数据内容数据内容:当前的当前的,细节的细节的 vs.历史的历
8、史的,合并的合并的n数据库设计数据库设计:ER+应用应用 vs.星型星型+主题主题n视图视图:当前的当前的,局部的局部的 vs.进化的进化的,集成的集成的n访问模式访问模式:更新更新 vs.只读的只读的,但是复杂的查询但是复杂的查询10OLTP vs.OLAP OLTP OLAP 用户用户 办事员办事员,IT 从业人员从业人员 知识工人知识工人 功能功能 日常操作日常操作 决策支持决策支持 DB 设计设计 面向应用面向应用 面向主题面向主题 数据数据 当前的当前的,最新的最新的,细节的细节的,展平的关系的展平的关系的,孤立的孤立的 历史的历史的,汇总的汇总的,多维的多维的,集成的集成的,加固的
9、加固的 用法用法 重复重复 特殊的特殊的 访问访问 读读/写写 在主键上索引在主键上索引/散列散列 大量扫描大量扫描 工作单位工作单位 短的短的,简单的事务简单的事务 复杂的查询复杂的查询 访问的记录量访问的记录量 数以十计数以十计 数百万数百万 用户数用户数 数千数千 数百数百 数据库大小数据库大小 100MB-GB 100GB-TB 度量度量 事务吞吐量事务吞吐量 查询吞吐量查询吞吐量,响应时间响应时间 11为什么建立分离的数据仓库为什么建立分离的数据仓库?n为了两个系统的高性能为了两个系统的高性能nDBMS 目的是目的是 OLTP:存取方法存取方法,索引索引,并发控制并发控制,恢复恢复n
10、数据仓库数据仓库目的是目的是 OLAP:复杂的复杂的 OLAP 查询查询,多维视图多维视图,统统一一.n不同的功能和不同的数据不同的功能和不同的数据:n缺少数据缺少数据:决策支持需要历史数据决策支持需要历史数据,通常操作数据库并不维护通常操作数据库并不维护这些数据这些数据n数据统一数据统一:决策支持需要将来自异种数据源的数据统一决策支持需要将来自异种数据源的数据统一(聚集聚集,汇总汇总)n数据质量数据质量:不同的数据源通常使用不同的数据表示不同的数据源通常使用不同的数据表示,编码编码,和和应当遵循的格式应当遵循的格式12第第2章章:数据挖掘的数据仓库与数据挖掘的数据仓库与OLAP技术技术n什么
11、是数据仓库什么是数据仓库?n多维数据模型多维数据模型n数据仓库结构数据仓库结构n数据仓库实现数据仓库实现n从数据仓库到数据挖掘从数据仓库到数据挖掘n数据立方体的进一步发展数据立方体的进一步发展13由表和电子数据表到数据方由表和电子数据表到数据方n数据仓库基于数据仓库基于 多维数据模型多维数据模型,多维数据模型将数据视为数据多维数据模型将数据视为数据方方(data cube)形式形式n数据方数据方(如如sales)可以将数据建模可以将数据建模,并允许由多个维进行观察并允许由多个维进行观察n维表维表,如如 item(item_name,brand,type),或或 time(day,week,mo
12、nth,quarter,year)n事实表包含度量事实表包含度量(如如 dollars_sold)和每个相关维表的键和每个相关维表的键n在数据仓库的文献中在数据仓库的文献中,一个一个 n-D 基本立方体基本立方体 称作基本方体称作基本方体(base cuboid).最顶部的最顶部的 0-D方体存放最高层的汇总方体存放最高层的汇总,称作顶称作顶点方体点方体(apex cuboid).方体的格形成数据方方体的格形成数据方.14立方体立方体:方体的格方体的格alltimeitemlocationsuppliertime,itemtime,locationtime,supplieritem,locat
13、ionitem,supplierlocation,suppliertime,item,locationtime,item,suppliertime,location,supplieritem,location,suppliertime,item,location,supplier0-D(顶点顶点)方体方体1-D 方体方体2-D方体方体3-D方体方体4-D(基本基本)方体方体15数据仓库的概念建模数据仓库的概念建模n数据仓库建模数据仓库建模:多维模型,涉及维和度量多维模型,涉及维和度量n星型模式星型模式:事实表在中央事实表在中央,连接一组维表连接一组维表n雪花模式雪花模式:星型模式的精炼星型模式
14、的精炼,其中一些维分层结构被规范其中一些维分层结构被规范化成一组较小的维表化成一组较小的维表,形成类似于雪花的形状,减少冗余形成类似于雪花的形状,减少冗余n事实星座事实星座:多个事实表共享维表多个事实表共享维表,可以看作星星的集合可以看作星星的集合,因因此称作星系模式此称作星系模式,或事实星座或事实星座16星型模式的例子星型模式的例子 time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcityprovince_or_statecountrylocation事实表事实表 time_key item_keybranch_
15、key location_key units_sold dollars_sold avg_salesMeasuresitem_keyitem_namebrandtypesupplier_typeitembranch_keybranch_namebranch_typebranch17雪花模式的例子雪花模式的例子time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcity_keylocationSales Fact Table time_key item_keybranch_key location_key units_s
16、olddollars_sold avg_salesMeasuresitem_keyitem_namebrandtypesupplier_keyitembranch_keybranch_namebranch_typebranchsupplier_keysupplier_typesuppliercity_keycityprovince_or_statecountrycity18事实星座的例子事实星座的例子time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcityprovince_or_statecountrylocati
17、onSales Fact Tabletime_keyitem_keybranch_keylocation_keyunits_solddollars_sold avg_salesMeasuresitem_keyitem_namebrandtypesupplier_typeitembranch_keybranch_namebranch_typebranchShipping Fact Tabletime_keyitem_keyshipper_keyfrom_locationto_locationdollars_costunits_shippedshipper_keyshipper_namelocat
18、ion_keyshipper_typeshipper19数据挖掘查询语言数据挖掘查询语言 DMQL:语言原语语言原语n立方体定义立方体定义(事实表事实表)define cube :n维定义维定义(维表维表)define dimension as()n特殊情况特殊情况(共享维表共享维表)n第一次第一次,如如“cube definition”ndefine dimension as in cube 20用用DMQL定义星型模式定义星型模式define cube sales_star time,item,branch,location:dollars_sold=sum(sales_in_dollar
19、s),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,stre
20、et,city,province_or_state,country)21用用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,ite
21、m_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)22用用DMQL定义事实星座定义事实星座define cube sales time,item,branch,location:dollars_sold=sum(sales_in_dolla
22、rs),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,str
23、eet,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 salesdefine dimension item as item in cube salesdefine dimension shipper as(shipper_key,shipper_name,locatio
24、n as location in cube sales,shipper_type)define dimension from_location as location in cube salesdefine dimension to_location as location in cube sales23三类度量(数值函数)三类度量(数值函数)n分布的分布的(distributive):将数据划分为将数据划分为n个集合个集合,函数在每一部函数在每一部分上的计算得到一个聚集值分上的计算得到一个聚集值.如果将函数用于如果将函数用于n个聚集值得到个聚集值得到的结果的结果,与将函数用于所有数据得到的结
25、果一样与将函数用于所有数据得到的结果一样,则该函数可则该函数可以用分布方式计算以用分布方式计算.n例例,count(),sum(),min(),max().n代数的代数的(algebraic):如果它能够由一个具有如果它能够由一个具有M(其中其中,M是一个是一个整数界整数界)个参数的代数函数计算个参数的代数函数计算,而每个参数都可以用一个分而每个参数都可以用一个分布聚集函数求得布聚集函数求得.n例例,avg(),min_N(),standard_deviation().n整体的整体的(holistic):如果描述它的子聚集所需的存储没有一个常如果描述它的子聚集所需的存储没有一个常数界数界.n例
26、例,median(),mode(),rank().24一个概念分层一个概念分层:维维LocationallEuropeNorth_AmericaMexicoCanadaSpainGermanyVancouverM.WindL.Chan.allregionofficecountryTorontoFrankfurtcity25数据仓库和分层结构视图数据仓库和分层结构视图26多维数据多维数据n多维模型中,数据组织成多维,每维包含由概念分层定义的多维模型中,数据组织成多维,每维包含由概念分层定义的多个抽象层多个抽象层n销售量作为销售量作为 product,month,和和 region的函数的函数Pr
27、oductRegionMonth维维:Product,Location,Time的分层结构的分层结构Industry Region YearCategory Country QuarterProduct City Month Week Office Day27一个数据方的样本一个数据方的样本TV 在在 U.S.A.的总销售的总销售DateProductCountrysumsum TVVCRPC1Qtr2Qtr3Qtr4QtrU.S.ACanadaMexicosum28对应于数据方的方体对应于数据方的方体allproductdatecountryproduct,dateproduct,count
28、rydate,countryproduct,date,country0-D(顶点顶点)方体方体1-D方体方体2-D方体方体3-D(基本基本)方体方体29浏览数据方浏览数据方n可视化可视化nOLAP 的能力的能力n交互式操作交互式操作30典型的典型的OLAP操作操作n上卷上卷(Roll up)/上钻上钻(drill-up):汇总数据汇总数据n下钻下钻(Drill down)/下卷下卷(roll down):上卷的逆操作上卷的逆操作n切片切片(Slice)和切块和切块:n投影和选择投影和选择 n转轴转轴(Pivot)/旋转旋转(rotate):n调整数据方调整数据方,目视操作目视操作,3D 到到
29、2D 平面平面.n其它操作其它操作n钻过钻过(drill across):涉及多个事实表涉及多个事实表n钻透钻透(drill through):通过数据方的最底层通过数据方的最底层,到它背后的关系表到它背后的关系表(使使用用 SQL)31OLAP 操作操作:上卷上卷n上卷上卷(Roll up)/上钻上钻(drill-up):汇总数据汇总数据n通过沿概念分层攀升或通过维归约通过沿概念分层攀升或通过维归约n在在 location上卷上卷(由由 cities 到到 countries)32OLAP 操作操作:下钻下钻n下钻下钻(Drill down)/下卷下卷(roll down):上卷的逆操作上卷
30、的逆操作n由较高层的汇总到较低层的汇总或详细数据由较高层的汇总到较低层的汇总或详细数据,或者引或者引进新的维进新的维n在在 time下钻下钻(由由 quarters 到到 months)33OLAP 操作操作:切片切片n切片切片(Slice):n投影和选择,对一个维进行选择,导致子方体投影和选择,对一个维进行选择,导致子方体n切片条件切片条件:time=“Q2”34OLAP 操作操作:切块切块n切块切块:对两个或多个维执行选择,导致子方体对两个或多个维执行选择,导致子方体n切块条件切块条件:(location=“Montreal”or“Vancouver”)and(time=“Q1”or“Q2
31、”)and(item=“home entertainment”or“computer”)35OLAP 操作操作:转轴转轴n转轴转轴(Pivot)/旋转旋转(rotate):n调整数据方调整数据方,可视化操作,提供数据的替代表示可视化操作,提供数据的替代表示.36其他操作其他操作n其它操作其它操作n钻过钻过(drill across):涉及多个事实表涉及多个事实表n钻透钻透(drill through):通过数据方的最底层通过数据方的最底层,到它到它背后的关系表背后的关系表(使用使用 SQL)n统计计算统计计算n比率、方差;增长率比率、方差;增长率n分析建模,等分析建模,等37第第3章章:数据挖
32、掘的数据仓库与数据挖掘的数据仓库与OLAP技术技术n什么是数据仓库什么是数据仓库?n多维数据模型多维数据模型n数据仓库结构数据仓库结构n数据仓库实现数据仓库实现n从数据仓库到数据挖掘从数据仓库到数据挖掘n数据立方体的进一步发展数据立方体的进一步发展38数据仓库设计数据仓库设计n数据仓库设计中,必须考虑四种视图数据仓库设计中,必须考虑四种视图 n自顶向下视图自顶向下视图n选择数据仓库所需的有关信息选择数据仓库所需的有关信息n数据源视图数据源视图n揭示(操作)数据库系统捕获、存储、和管理的信息揭示(操作)数据库系统捕获、存储、和管理的信息 n数据仓库视图数据仓库视图n由事实表和维表组成由事实表和维
33、表组成n商务查询视图商务查询视图 n从最终用户的角度透视数据仓库中的数据从最终用户的角度透视数据仓库中的数据 39数据仓库设计过程数据仓库设计过程 n自顶向下自顶向下,自底向上方法或二者的结合自底向上方法或二者的结合n自顶向下自顶向下:由总体设计和规划开始由总体设计和规划开始(成熟成熟)n自底向上自底向上:由实验和原型开始由实验和原型开始(快速快速)n软件工程的观点软件工程的观点n瀑布式瀑布式:在进行下一步之前在进行下一步之前,每一步都进行结构化和系统的分析每一步都进行结构化和系统的分析 n螺旋式螺旋式:功能渐增的系统的快速产生功能渐增的系统的快速产生,相继版本之间的间隔很短相继版本之间的间隔
34、很短,快快速转向速转向n典型的数据仓库设计过程典型的数据仓库设计过程n选取待建模的商务处理选取待建模的商务处理,例如例如,订单订单,发票发票,库存等库存等.n选取商务处理的粒度选取商务处理的粒度(原子层数据原子层数据),例如,单个事务、一天的快照等例如,单个事务、一天的快照等 n选取用于每个事实表记录的维选取用于每个事实表记录的维,如如,时间、商品、顾客、供应商、仓库、时间、商品、顾客、供应商、仓库、事务类型和状态事务类型和状态 等等n选取将安放在事实表中的度量选取将安放在事实表中的度量.典型的度量是可加的数值量典型的度量是可加的数值量,如如dollars_sold和和units_sold 4
35、0多层结构多层结构数据仓库数据仓库提取提取变换变换装入装入刷新刷新OLAP引擎引擎分析分析查询查询报告报告数据挖掘数据挖掘Monitor&Integrator元数据元数据数据源数据源终端工具终端工具输出输出数据集市数据集市操作数据库操作数据库其它其它数据源数据源数据存储数据存储OLAP 服务器服务器41三层数据仓库模型三层数据仓库模型n企业仓库企业仓库n搜集了关于主题的所有信息搜集了关于主题的所有信息,跨越整个组织跨越整个组织 n数据集市数据集市n数据集市包含企业范围数据的一个子集数据集市包含企业范围数据的一个子集,对于特定的用户是有用的对于特定的用户是有用的.其范围限于选定的主题其范围限于选
36、定的主题,如销售数据如销售数据n独立的独立的 vs.依赖的依赖的(直接来自数据仓库直接来自数据仓库)数据集市数据集市n虚拟仓库虚拟仓库n操作数据库上视图的集合操作数据库上视图的集合 n只有部分可能的汇总视图被物化只有部分可能的汇总视图被物化 42数据仓库开发数据仓库开发:一种推荐的方法一种推荐的方法定义一个高层企业数据模型定义一个高层企业数据模型数据数据集市集市分布式分布式数据集市数据集市多层数据仓库多层数据仓库企业数据仓库企业数据仓库模型模型 提炼提炼数据数据集市集市模模 型型 提提 炼炼43OLAP 服务器结构服务器结构n关系关系OLAP(ROLAP)n使用关系或扩充关系的使用关系或扩充关
37、系的 DBMS 存放和管理仓库数据存放和管理仓库数据,使用使用OLAP中中间件支持其它部分间件支持其它部分n包含一个优化的包含一个优化的 DBMS 后端后端,聚集导航逻辑的实现聚集导航逻辑的实现,以及附加的工以及附加的工具和服务具和服务 n较大的可伸缩性较大的可伸缩性n多维多维 OLAP(MOLAP)n基于数组的多维存储引擎基于数组的多维存储引擎(稀疏矩阵技术稀疏矩阵技术)n对预计算的汇总数据快速索引对预计算的汇总数据快速索引n混合混合 OLAP(HOLAP)n弹性弹性,底层底层:关系的关系的,高层高层:数组数组.n专门的专门的 SQL 服务器服务器n对星型对星型/雪花型模式上的雪花型模式上的
38、SQL查询提供特殊的支持查询提供特殊的支持44元数据存储元数据存储n元数据是定义数据仓库的数据元数据是定义数据仓库的数据.有如下类型有如下类型 n描述数据仓库的结构描述数据仓库的结构n模式模式,视图视图,维维,分层结构分层结构,数据源定义数据源定义,数据集市的位置和内容数据集市的位置和内容n操作元数据操作元数据n数据血统数据血统(数据变迁历史和转换路径数据变迁历史和转换路径),数据流通数据流通(主动主动,存档存档,或净或净化化),管理信息管理信息(数据仓库使用统计数据仓库使用统计,错误报告错误报告,审计跟踪审计跟踪)n用于汇总的算法用于汇总的算法n由操作环境到数据仓库的映射由操作环境到数据仓库
39、的映射n涉及系统性能的数据涉及系统性能的数据n仓库模式仓库模式,视图和导出数据的定义视图和导出数据的定义n商务数据商务数据n商务术语和定义商务术语和定义,数据的所有者数据的所有者,收费政策收费政策45数据仓库的后端工具和实用程序数据仓库的后端工具和实用程序n数据提取数据提取:n由多个异种由多个异种,外部数据源收集数据外部数据源收集数据n数据清理数据清理:n检测数据中的错误检测数据中的错误,可能时订正它们可能时订正它们 n数据变换数据变换:n将数据由遗产或宿主格式转换成数据仓库格式将数据由遗产或宿主格式转换成数据仓库格式 n装载装载:n排序排序,综合综合,加固加固,计算视图计算视图,检查整体性检
40、查整体性,并建立索引和划分并建立索引和划分 n刷新刷新n传播由数据源到数据仓库的更新传播由数据源到数据仓库的更新 46第第2章章:数据挖掘的数据仓库与数据挖掘的数据仓库与OLAP技术技术n什么是数据仓库什么是数据仓库?n多维数据模型多维数据模型n数据仓库结构数据仓库结构n数据仓库实现数据仓库实现n从数据仓库到数据挖掘从数据仓库到数据挖掘n数据立方体的进一步发展数据立方体的进一步发展47数据方的有效计算数据方的有效计算n数据方可以视为方体的格数据方可以视为方体的格 n最下面的方体是基本方体最下面的方体是基本方体n最上面的最上面的(顶点顶点)方体只包含一个单元方体只包含一个单元n具有具有L层的层的
41、n-D数据方包含多少个方体数据方包含多少个方体?n其中其中Li是与维是与维i相关联的层数相关联的层数n数据方的物化数据方的物化(Materialization)n物化每一个方体物化每一个方体(全物化全物化),不物化任何方体不物化任何方体(不物化不物化),或物化某些方或物化某些方体体(部分物化部分物化)n物化方体的选择物化方体的选择n基于大小基于大小,共享共享,访问频率访问频率,等等.)11(niiLT48数据方计算数据方计算n用用DMQL定义和计算数据方定义和计算数据方define cube salesitem,city,year:sum(sales_in_dollars)compute cu
42、be salesn将它变换成类将它变换成类SQL语句语句(用新的操作用新的操作 cube by扩充扩充,由由Gray 等等96引进引进)SELECT item,city,year,SUM(amount)FROM SALESCUBE BY item,city,yearn需要计算的分组需要计算的分组(city,item,year),(city,item),(city,year),(item,city),(city),(item),(year)()(item)(city)()(year)(city,item)(city,year)(item,year)(city,item,year)49数据方计算数
43、据方计算:基于基于ROLAP的方法的方法(1)n有效的方计算方法有效的方计算方法n基于基于ROLAP的方计算算法的方计算算法(Agarwal et al96)n基于数组的方计算算法基于数组的方计算算法(Zhao et al97)n自底向上的方法自底向上的方法(Beyer&Ramarkrishnan99)n混合的方法混合的方法(Han,Pei,Dong&Wang:SIGMOD01)n基于基于ROLAP的方计算算法的方计算算法n排序排序,散列散列,和分组操作用于维属性和分组操作用于维属性,以便对相关元组重新排序和分以便对相关元组重新排序和分簇簇n在某些子聚集上分组,作为在某些子聚集上分组,作为“部
44、分分组部分分组”n由以前计算的聚集计算新的聚集,而不必由基本事实表计算由以前计算的聚集计算新的聚集,而不必由基本事实表计算 50数据方计算数据方计算:基于基于ROLAP的方法的方法(2)n取自研究论文取自研究论文n基于基于Hash/排序排序 的方法的方法(Agarwal 等等.VLDB96)n最小双亲最小双亲(Smallest-parent):由最小的由最小的,先前计算的方体计算方体先前计算的方体计算方体n存储结果存储结果(Cache-results):存储先前计算的方体存储先前计算的方体,由它可以计算其它由它可以计算其它方体方体,以减少磁盘以减少磁盘I/On分摊扫描分摊扫描(Amortize
45、-scans):同时计算尽可能多的方体同时计算尽可能多的方体,以分摊磁盘以分摊磁盘的读操作开销的读操作开销n共享排序共享排序(Share-sorts):使用基于排序的方法时使用基于排序的方法时,在多个方体之间共在多个方体之间共享排序开销享排序开销n共享划分共享划分(Share-partitions):使用基于使用基于hash的方法时的方法时,在多个方体之在多个方体之间共享划分开销间共享划分开销51索引索引OLAP 数据数据n为了有效的访问,大部分数据仓库系统支持索引为了有效的访问,大部分数据仓库系统支持索引结构结构n两种常用的方法对两种常用的方法对OLAP数据进行索引数据进行索引n位图索引位图
46、索引 bitmap indexingn连接索引连接索引 join indexing52索引索引OLAP 数据数据:位图索引位图索引n在一个特定列上索引在一个特定列上索引n列上的每个值是一个位向量列上的每个值是一个位向量:位操作很快位操作很快n位向量的长度位向量的长度:基本表的记录数基本表的记录数n如果数据表中给定行的属性值为如果数据表中给定行的属性值为v,则在位图索引的对应行则在位图索引的对应行,表示该值的位为表示该值的位为1,该行的其它位均为该行的其它位均为0 n不适合势不适合势(不同值个数不同值个数)很高的域很高的域CustRegionTypeC1AsiaRetailC2EuropeDea
47、lerC3AsiaDealerC4America RetailC5EuropeDealerRecID Retail Dealer110201301410501RecID Asia Europe America11002010310040015010基本表基本表在在 Region上索引上索引在在 Type上索引上索引53索引索引OLAP 数据数据:连接索引连接索引n连接索引连接索引:JI(R-id,S-id),其中其中 R(R-id,)S(S-id,)n将关系的连接物化在将关系的连接物化在JI文件中文件中,加快了关系连接的速度加快了关系连接的速度n数据仓库中数据仓库中,连接索引将星型模式维表的值
48、关联到事实表的行连接索引将星型模式维表的值关联到事实表的行.n例例,事实表事实表Sales 和两个维和两个维 city 和和 productncity 上的连接索引对每个不同的城市上的连接索引对每个不同的城市,维护一张记录该城维护一张记录该城市销售的元组的市销售的元组的Rn连接索引可以扩展到多维连接索引可以扩展到多维54OLAP查询的有效处理查询的有效处理n物化方体和构造物化方体和构造OLAP索引结构的目的是加快数据立方体索引结构的目的是加快数据立方体的查询处理速度。的查询处理速度。n查询处理按如下步骤进行:查询处理按如下步骤进行:n确定哪些操作可以在可用的方体上进行确定哪些操作可以在可用的方
49、体上进行:n将下钻将下钻,上卷等操作变换成对应的上卷等操作变换成对应的SQL和和/或或OLAP操作操作,例如例如,dice=selection+projectionn确定相关的操作应当使用哪些物化的方体确定相关的操作应当使用哪些物化的方体.55第第3章章:数据挖掘的数据仓库与数据挖掘的数据仓库与OLAP技术技术n什么是数据仓库什么是数据仓库?n多维数据模型多维数据模型n数据仓库结构数据仓库结构n数据仓库实现数据仓库实现n从数据仓库到数据挖掘从数据仓库到数据挖掘n数据立方体的进一步发展数据立方体的进一步发展56数据仓库使用数据仓库使用n数据仓库应用的三种类型数据仓库应用的三种类型n信息处理信息处
50、理n支持查询支持查询,基本统计分析基本统计分析,使用交叉表使用交叉表,表表,图表和图图表和图进行报告进行报告n分析处理分析处理n数据仓库数据的多维分析数据仓库数据的多维分析n支持基本的支持基本的 OLAP 操作操作,切片切片-切块切块,上下钻上下钻,转轴转轴n数据挖掘数据挖掘n隐藏模式的知识发现隐藏模式的知识发现 n支持关联支持关联,构造分析模型构造分析模型,进行分类和预测进行分类和预测,并使用并使用可视化工具提供挖掘结果可视化工具提供挖掘结果.n三类任务的差别三类任务的差别57从联机分析处理到联机分析挖掘从联机分析处理到联机分析挖掘n为什么要进行联机分析挖掘为什么要进行联机分析挖掘(OLAM