1、第2章数据仓库和数据挖掘 的OLAP技术,什么是数据仓库多维数据模型数据仓库的系统结构数据仓库的实现数据立方体技术的进一步发展从数据仓库到数据挖掘,1,什么是数据仓库,1、需求产生DW 使顾客满意,不断增加利润,提高市场份额,这些是目前商业竞争的基本目标。利用IT可以使我们获得成功。答案之一就是DW:公司的目标如何与信息系统结合;如何建立具有交叉功能的信息系统;数据的合理组织和利用。,2,2、数据处理分为两大类,事务处理:DB联机的日常操作,对一个或一组记录的查询和修改,为企业服务。分析型处理:用于管理人员的决策分析。例如DSS、EIS和多维分析,经常要访问大量的历史数据。,3,3、事务处理环
2、境不适宜DSS应 用的原因,事务处理和分析处理的性能特性不同数据集成问题(DSS需要集成的数据)a.事务处理应用的分散;b.蜘蛛网问题;c.数据不一致问题;d.外部数据和非结构化数据。数据动态集成问题:数据必须以一定的周期进行刷新。历史数据问题。在DB中存在大量的历史数据,没有充分利用。,4,DW的主要驱动力是市场竞争要求捕获和分析事务的业务数据,必须把分析型数据从事务处理环境中提取出来;DW是为了建立这种新的分析处理环境而出现的一种数据存储和组织技术。,4、数据综合,5,“数据仓库是一个面向主题的、集成的、时变的、非易失的数据集合,支持管理部门的决策过程”W.H.Inmon什么是建立数据仓库
3、我们把建立数据仓库看作是构造和使用数据仓库的过程,6,数据仓库的面向主题性,数据仓库是面向在数据模型中已定义好的公司的主要主题领域的,典型的例子有顾客、产品、销售等数据仓库主要关注DSS分析员的数据建模与分析,而不是集中于组织机构的日常操作和事务处理数据仓库排除对于决策无用的数据,提供特定主题的简明的视图,7,数据仓库的集成性,数据仓库是将多个异种数据源的数据集成在一起a.异种数据源包括有关系数据库、一般文件和联机事务处理记录等数据仓库使用数据清理和数据集成技术a.数据清理和数据集成技术确保多个异种数据源中命名约定、编码结构、属性度量等的一致性b.当数据从操作型环境进入到数据仓库,已经被进行过
4、清理和转换,8,数据仓库的时变性,数据仓库中的数据时间期限要远远长于操作型系统中的数据时间期限a.操作型系统含有“当前值”数据,时间期限一般是60-90天b.数据仓库从历史的角度提供信息,其中的数据仅仅是一系列某一时刻生成的复杂的快照,时间期限通常是5-10年数据仓库中的键码结构a.数据仓库中的关键结构,隐式或显式地包含时间元素b.操作型系统的键码结构可能不包括时间元素,9,数据仓库是非易失的,数据仓库总是物理地、分离存放数据数据仓库中不进行操作型环境中的数据更新a.数据仓库不需要事务处理、恢复和并发控制机制b.数据仓库通常只需要两种数据访问:数据的初始化装入和数据访问,10,怎样建立数据仓库
5、,把建立数据仓库看作是构造和使用数据仓库的过程主题是对应某一分析领域的分析对象DW是一个用以更好地支持企业或组织的决策分析处理的、面向主题的、集成的、不可更新的、非易失的数据集合,11,实现DW要做:,从不同数据来源中如何集成数据数据质量:精确和简炼数据的概括和聚集每当数据源中创建了新数据时,如何保证DW和数据源的同步更新在同一台计算机和RDB的平台上,当DW的DB和工具共享时如何保证性能,12,DW中的数据组织,在DW中的数据分为四个级别:早期细节级、当前细节级、轻度综合级、高度综合级源数据经过综合后,首先进入当前细节级,并根据具体需要进行进一步的综合从而进入轻度综合级及至高度综合级,(以D
6、W中数据的四个基本特征为基础),13,14,15,数据仓库主要用于集中存放用户需要分析的历史数据,数据仓库的逻辑结构:a.近期基本数据层b.历史数据层c.综合数据层(为决策服务)数据仓库的物理结构:a.星型结构(一般使用)b.雪花结构,16,数据仓库的特征,面向主题集成性时变的非易失的,17,数据仓库中的数据分类,详细型数据 过去详细数据 当前详细数据汇总型数据 轻度汇总数据 高度汇总数据元数据,18,数据仓库的主要组成部分,数据源 数据抽取(Extraction)、转换(Transformation)和装载(Load)工具。数据建模工具 核心仓储(Central Repository)数据仓
7、库的目标数据库前端数据访问和分析工具数据仓库管理工具,19,数据仓库的主要特点,数据仓库容量可存放TB级别的数据;获得快速抽样算法生成功能强大、容易使用的、高质量的报表;实现海量数据的快速查询功能;可视化分析良好的、模块划的多维分析模型多维模型升级快,20,什么是OLAP,基本概念a.变量 b.维 c.维的层次:d.维成员 e.多维数组 f.数据单元(单元格)多维分析的基本分析动作切片(slice)切块(Dice)旋转:改变一个报告或页面显示的维方向通过OLAP服务器,将DB中的数据抽取和转换为多维数据结构,以反映用户所能理解的企业的真实的维。,21,OLTP与OLAP的关系级比较,OLTP面
8、对操作人员和低层管理人员,OLAP面对的决策人员和高层管理人员。数据的特点:,22,OLAP产品的十二条评价准则,准则1 OLAP模型必须提供多维概念视图准则2 透明性准则准则3 存取能力准则准则4 稳定的报表性能准则5 客户/服务器体系结构准则6 维的等同性准则准则7 动态的稀疏矩阵处理准则准则8 多用户支持能力准则准则9 非管理的跨维操作准则10 直观的数据操纵准则11 灵活的报表生成准则12 不受限维与聚集层次,23,OLAP的三层客户/服务器,24,基于多维数据库的OLAP实现,多维数据 维的层次关系和类维类维的层次和类的区别:时间序列数据类型多维DB存储MDDB存取,25,基于RDB
9、的OLAP实现,OLAP数据处理的一般过程:即数据装入、汇总、建索引和提供使用。OLAP的特点OLAP最重要的特点是具有多维概念视图,这也常常被称作多维数据模型MDM,把业务过程转为一个多维模型的过程称为多维建模。OLAP技术主要使用的是事实表、分维表、层次、稀疏性等概念和方法。,26,数据仓库和异种DBMS数据集成的区别,传统的异种数据库的数据集成:在多个异种数据库上建立一个包装程序和一个集成程序(或中介程序)查询驱动的方法数据仓库使用高效的更新驱动方法将来自多个异种数据源的信息预先集成,并储存在数据仓库中,供直接查询和分析,27,OLTP系统和OLAP系统的比较,28,为什么需要一个分离的
10、数据仓库?,分离的主要原因是提高两个系统的性能DBMS 适用于OLTP处理:数据仓库适用于 OLAP处理:两种系统中数据的结构、内容和用法都不相同数据内容:决策支持系统需要历史数据,而操作数据库一般不维护历史数据数据的统一性:决策支持需要将来自异种数据源的数据统一(如聚集和汇总),产生高质量的集成数据数据质量:异种数据源中的数据通常具有不同的数据表示法,不同的编码机制和格式,数据仓库将其统一,能产生高质量的、纯净的集成数据,29,第2章数据仓库和数据挖掘的OLAP技术,什么是数据仓库?多维数据模型数据仓库的系统结构数据仓库的实现数据立方体技术的进一步发展从数据仓库到数据挖掘,30,由表和电子数
11、据表到数据立方体,数据仓库和OLAP工具基于多维数据模型,该模型将数据看作数据立方体形式一个数据立方体,比如商店的销售,允许以多维对数据建模和观察例如 item(item_name,brand,type),time(day,week,month,quarter,year)称为维表,关联维 item 和 time事实表包括事实的名称或度量(比如 dollars_sold),以及每个相关维表的关键字在数据仓库研究文献中,存放最低层汇总数据的方体称为 基本方体。0-维方体存放最高层的汇总数据,称作 顶点方体。方体的格称为数据立方体,31,数据立方体:方体的格,all,time,item,locati
12、on,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(基本)方体,32,数据仓库的概念建模,数据仓库的建模:按维和度量星型模式:模式图很像星星爆发,维表围绕事实表显示在射线
13、上 雪花模式:雪花模式是星型模式的变种,其中某些维表是规范化的,把数据进一步分解到附加的表中,形成类似于雪花的形状事实星座:多个事实表共享维表,这种模式可以看作星型模式集,因此也可以称为星系模式,或者事实星座,33,星型模式的例子,Sales 事实表,time_key,item_key,branch_key,location_key,units_sold,dollars_sold,avg_sales,各种度量,34,雪花模式的例子,Sales 事实表,time_key,item_key,branch_key,location_key,units_sold,dollars_sold,avg_sa
14、les,各种度量,35,事实星座的度量,Sales 事实表,time_key,item_key,branch_key,location_key,units_sold,dollars_sold,avg_sales,各种度量,Shipping 事实表,time_key,item_key,shipper_key,from_location,to_location,dollars_cost,units_shipped,36,数据挖掘查询语言DMQL,立方体定义(对应事实表)define cube:维定义(对应维表)define dimension as()特殊情况(共享的维表)先定义数据立方体defi
15、ne dimension as in cube,37,用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,su
16、pplier_type)define dimension branch as(branch_key,branch_name,branch_type)define dimension location as(location_key,street,city,province_or_state,country),38,用DMQL定义雪花模式,define cube sales_snowflake time,item,branch,location:dollars_sold=sum(sales_in_dollars),avg_sales=avg(sales_in_dollars),units_sol
17、d=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,provi
18、nce_or_state,country),39,用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_
19、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 c
20、ube salesdefine dimension item as item in cube salesdefine dimension shipper as(shipper_key,shipper_name,location as location in cube sales,shipper_type)define dimension from_location as location in cube salesdefine dimension to_location as location in cube sales,40,度量的分类和计算,分布的:设数据被划分为n个集合,函数在每一部分上
21、的计算得到一个聚集值,如果将函数用于n个聚集值得到的结果,与将函数用于所有数据得到的结果一样,则该函数可以用分布方式计算,该聚集函数是分布的E.g.,count(),sum(),min(),max().,41,代数的:一个聚集函数是代数的,如果它能够由一个具有M个参数的代数函数计算(其中M是一个有界整数),而每个参数都可以用一个分布聚集函数得到E.g.,avg(),min_N(),standard_deviation().,42,整体的:一个聚集函数是整体的,如果描述它的子聚集所需的存储没有一个常数界E.g.,median(),mode(),rank().,43,概念分层,all,Europe
22、,North_America,Mexico,Canada,Spain,Germany,Vancouver,M.Wind,L.Chan,.,.,.,.,.,.,all,region,office,country,Toronto,Frankfurt,city,44,数据仓库概念分层视图,45,概念分层分类,模式分层day month quarter;week year集合分组分层1.10 inexpensive,46,多维数据模型,数据立方体sales中每格的度量可以看作是关联Product、Region和Month的函数,Product,Region,Month,涉及的维:Product,Loc
23、ation,Time 属性的层次结构和格结构,Industry Region YearCategory Country QuarterProduct City Month Week Office Day,47,数据立方体样本,全年度美国电视机的销售量,48,立方体中不同汇总级相应的方体,all,product,date,country,product,date,product,country,date,country,product,date,country,0-D(顶点)方体,1-D 方体,2-D 方体,3-D(基本)方体,49,数据立方体览图,可视化适合OLAP操作交互式操作,50,典型的
24、OLAP操作,上卷(上钻):数据的汇总通过一个维的概念分层向上攀升或者通过维归约来实现下钻(下卷):上卷的逆操作通过沿维的概念分层由高粒度向下下钻到低粒度的层次或者通过引入新的维来实现切片和切块:映射和选择,51,转轴(旋转):转动数据的视角,是一种目视操作,如将3-D立方转换成2-D平面序列其他OLAP操作钻过:涉及多个事实表的查询钻透:钻到数据立方体底层,到达后端关系表(使用SQL机制),52,星型网查询模型,Shipping Method,AIR-EXPRESS,TRUCK,ORDER,Customer Orders,CONTRACTS,Customer,Product,PRODUCT
25、GROUP,PRODUCT LINE,PRODUCT ITEM,SALES PERSON,DISTRICT,DIVISION,Organization,Promotion,CITY,COUNTRY,REGION,Location,DAILY,QTRLY,ANNUALY,Time,每个圈称为一个脚印,53,第2章数据仓库和数据挖掘的OLAP技术,什么是数据仓库?多维数据模型数据仓库的系统结构数据仓库的实现数据立方体技术的进一步发展从数据仓库到数据挖掘,54,数据仓库设计:一个商务分析框架,数据仓库的设计必须考虑四种不同的视图 自顶向下视图可以选择数据仓库所需的相关信息,这些信息能够满足当前和未来
26、商务的需求数据源视图揭示被操作数据库系统捕获、存储和管理的信息数据仓库视图包括事实表和维表,提供存放在数据仓库内部的信息商务查询视图 从最终用户的角度透视数据仓库中的数据,55,数据仓库设计过程,采用自顶向下方法,或者自底向上方法,或者混合方法自顶向下:由总体规划和设计开始(成熟)自底向上:由实验和原型开始(快速)从软件工程的观点看瀑布式方法:在进行下一步之前,每一步都进行结构化和系统的分析,像瀑布一样从一级落到下一级螺旋式方法:涉及功能渐增的系统的快速产生,相继版本之间的间隔很短,对数据集市是一个好的选择典型的数据仓库设计过程选取待建模的商务处理,如订单、发票、出货、库存、记帐等选取商务处理
27、的粒度(数据的原子级),如一天的快照等选取用于每个事实表的维选取将安放在事实表中的度量,56,多层数据仓库体系结构,57,三类数据仓库模型,企业仓库搜集关于主题的所有信息,跨越整个组织,通常包括详细数据和汇总数据数据集市包含对于特定用户有用的企业范围内数据的一个子集,通常包括的数据是汇总的。其范围限于选定的主题,例如商场的顾客、商品和销售独立数据集市和依赖数据集市(数据直接来自企业仓库)的区别虚拟仓库操作数据库上视图的集合只有一些可能的汇总视图被物化,58,数据仓库开发的推荐方法,定义高层数据模型,数据集市,数据集市,分布式数据集市,多层数据仓库,企业数据仓库,模型提炼,模型提炼,59,OLA
28、P服务器类型,关系OLAP(ROLAP)服务器使用关系或扩充关系DBMS存放和管理数据仓库,而OLAP中间件支持其余部分多维OLAP(MOLAP)服务器通过基于数组的多维存储引擎,支持数据的多维视图(采用稀疏矩阵技术)混合OLAP(HOLAP)服务器ROLAP和MOLAP技术的结合,有较大的灵活性。特殊的SQL服务器在星型和雪花模式上支持的特殊SQL查询,60,第2章数据仓库和数据挖掘的OLAP技术,什么是数据仓库?多维数据模型数据仓库的系统结构数据仓库的实现数据立方体技术的进一步发展从数据仓库到数据挖掘,61,数据立方体的有效计算,数据立方体可以看作是方体的格最底层的方体称为基本方体最高层(
29、顶点)方体只包含一个单元一个具有L层的n维数据立方体一共有多少个方体?数据立方体的物化预先计算所有方体(全物化),不预先计算(不物化),或者有选择的物化(部分物化)物化方体的选择考虑存储需求量、访问频率和开销、工作负荷的特点等,62,数据立方体的计算,用DMQL定义和计算数据立方体define cube salesitem,city,year:sum(sales_in_dollars)compute cube sales转换为类似SQL的语句(使用一种新的操作符 cube by(Gray et al.96))SELECT item,city,year,SUM(amount)FROM SALES
30、CUBE BY item,city,year需要计算下面的聚集子集(date,product,customer),(date,product),(date,customer),(product,customer),(date),(product),(customer)(),(item),(city),(),(year),(city,item),(city,year),(item,year),(city,item,year),63,基于ROLAP的数据立方体计算方法(1),有效率的数据立方体计算方法基于ROLAP的立方体算法(Agarwal et al96)基于数组的立方体算法(Zhao et
31、al97)自下向上的计算方法(Bayer&Ramarkrishnan99)基于ROLAP的立方体算法排序、散列和分组操作用于维属性,以便对相关元组重新排序和聚类在某些子聚集上分组,作为“部分分组步骤”可以由以前计算的聚集计算新的聚集,而不必由基本事实表计算,64,基于ROLAP的数据立方体计算方法(2),基于散列、排序的方法(Agarwal et.al.VLDB96)挑选最小的“父方体”:从以前计算的方体中挑选最小的方体计算新的方体存储计算结果:将方体计算结果存储起来,用于其他方体的计算,有利于减少系统I/O减少扫描:同时计算尽可能多的方体,减少读磁盘次数共享排序成本:当使用基于排序的计算方法
32、时,合理分配多维立方体上的排序成本共享分割成本:当使用基于散列的计算方法时,合理分配多维立方体上的分割成本,65,数据立方体计算中的多路数组聚集(1),将数组分割成块(可以放入内存的子方)压缩稀疏数组结构(使用chunk_id+offset寻址)通过访问立方体单元计算聚集。可以优化访问单元的次序,使得每个单元必须重复访问的次数最小化,从而减少存储访问开销和存储开销,在多路数组聚集中,怎样确定立方体的最佳访问途径?,66,数据立方体计算中的多路数组聚集(2),B,67,数据立方体计算中的多路数组聚集(3),A,B,29,30,31,32,1,2,3,4,5,9,13,14,15,16,64,63
33、,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,68,数据立方体计算中的多路数组聚集(4),计算方法:数据立方体中各块平面必须按它们的大小递增排序和计算具体请参考P50-51例2.12主要思想:在内存中存储具有最小面积的块平面,而对于具有最大面积的块平面,每次只取其中的一块进行计算算法的局限性:只适合于具有少数维的数据立方体这种算法要计算的方体个数随维数指数增长,为了避免维增长灾难,可以尝试使用“自底向上”计算方法和冰山方计算方法,69,索引OLAP数据:位图索引,在给定的属性上进行索引属性上的每个值都有一个对应的位向量:位操作比较快速位向量的长度由基本表的记录数量决定如果基本表中给定记录的属性值为v,则在位图索引的对应行,表示v的位为1,该行的其他位均为0不适合基