第13章联机分析处理(OLAP)技术完成.ppt
《第13章联机分析处理(OLAP)技术完成.ppt》由会员分享,可在线阅读,更多相关《第13章联机分析处理(OLAP)技术完成.ppt(32页珍藏版)》请在冰豆网上搜索。
![第13章联机分析处理(OLAP)技术完成.ppt](https://file1.bdocx.com/fileroot1/2022-10/22/90626758-5615-4847-bb55-2cf254f0f830/90626758-5615-4847-bb55-2cf254f0f8301.gif)
第13章联机分析处理(OLAP)技术13.1什么是什么是OLAP13.2多维数据模型多维数据模型13.3OLAP的实现的实现13.4小结小结13.1什么是什么是OLAPOLAP(On_LineAnalyticalProcessing)即联机分析处理,是以海量数据为基础的复杂分析技术。
OLAP概念是由E.F.Codd于1993年提出的。
OLAP软件提供的是多维分析和辅助决策功能。
对于深层次的分析和发现数据中隐含的规律和知识,则需要数据挖掘(DataMining)技术和相应的数据挖掘软件来完成。
13.2多维数据模型多维数据模型变量(变量(Measure)变量也称度量,是数据的实际意义,即描述数据“是什么”。
例如:
数据“10000”本身并没有意义或者说意义未定,它可能是一个学校的学生人数,也可能是某产品的单价,还可能是某商品的销售量等。
一般情况下,变量是一个数值的度量指标,例如:
“人数”、“单价”、“销售量”等都是变量或称为度量,而“10000万元”则是变量的一个值,销售量10000万元常称为度量值。
13.2.1基本概念基本概念13.2多维数据模型多维数据模型13.2.1基本概念基本概念维(维(Dimension)维是人们观察数据的特定角度。
例如,企业常常关心产品销售量随时间的变化情况,这时他是从时间的角度来观察产品的销售,所以时间就是一个维(时间维)。
企业也时常关心自己的产品在不同的地区的销售分布情况,这时他是从地区分布的角度来观察产品的销售,所以地区也是一个维(地区维)。
“维”是OLAP中十分重要的概念。
13.2多维数据模型多维数据模型13.2.1基本概念基本概念维的层次(维的层次(Hierarchy)人们观察数据的某个特定角度(即某个维)还可能存在细节程度不同的多个描述方面,我们称这多个描述方面为维的层次。
例如:
描述时间维时,可以从年、季、月、日等不同层次来描述,那么年、季、月、日等就是时间维的一种层次;同样,县、市、省、大区、国家等构成了地区维的一种层次。
13.2多维数据模型多维数据模型13.2.1基本概念基本概念维成员维成员(Member)维的一个取值称为该维的一个维成员,也称作维值。
如果一个维的某种层次具有多个层,那么该维的维成员是不同维层的取值的组合。
假设时间维的层次是年、月、日这三个层,分别在年、月、日上各取一个值组合起来,就得到了时间维的一个维成员,即“某日某月某年”。
一个维成员并不一定在每个维层上都要取值,例如,“某年某月”、“某月某日”、“某年”等都是时间维的维成员。
13.2多维数据模型多维数据模型13.2.1基本概念基本概念多维立方体多维立方体(Cube)多维数据模型的数据结构可以用这样来一个多维数组来表示:
(维1,维2,,维n,度量值),例如:
图13.1所示的电器商品销售数据是按时间、地区、商品,加上变量“销售额”组成的一个三维数组:
(地区,时间,商品,销售额)。
三维数组可以用一个立方体来直观的表示。
一般地多维数组用多维立方体CUBE来表示。
多维立方体CUBE也称为超立方体。
13.2多维数据模型多维数据模型13.2.1基本概念基本概念图图13.1按商品、时间和地区组织的电器商品销售数据按商品、时间和地区组织的电器商品销售数据销售额(万元)时间地区商品电视机洗衣机电冰箱北京123413.2多维数据模型多维数据模型13.2.1基本概念基本概念数据单元(数据单元(Cell)多维立方体多维立方体CUBE的取值称为数据单元。
当多的取值称为数据单元。
当多维立方体的各个维都选中一个维成员,这些维成维立方体的各个维都选中一个维成员,这些维成员的组合就唯一确定了一个变量的值。
员的组合就唯一确定了一个变量的值。
对于三维以上的超立方体,很难用可视化的方对于三维以上的超立方体,很难用可视化的方式直观地表示出来。
为此人们用较形象的星型模式直观地表示出来。
为此人们用较形象的星型模式式”(StarSchema)和和“雪片模式雪片模式”(SnowFlakeSchema)来描述多维数据模型。
来描述多维数据模型。
13.2多维数据模型多维数据模型13.2.1基本概念基本概念星型模式通常由一个中心表(事实表)和一组维表组成。
销售事实表销售员维顾客维时间维产品维制造商维图13.2星型模式13.2多维数据模型多维数据模型13.2.1基本概念基本概念星型模式的事实表与所有的维表相连,而每一个维表只与事实表相连。
维表与事实表的连接是通过码来体现的,如图13.3所示。
顾客代码顾客维表制造商维表销售事务表销售员维制造商代码日期顾客代码制造商代码销售员代码产品代码销售额销售员代码产品维表产品代码图13.3星型模式示例13.2多维数据模型多维数据模型13.2.1基本概念基本概念雪片模式就是对维表按层次进一步细化后形成的。
如图13.4,在“星型”维表的角上又出现了分支,这样变形的星型模式被称为“雪片模式”(SnowFlakeSchema)。
13.2多维数据模型多维数据模型13.2.1基本概念基本概念销售事实表销售员维顾客维时间维产品维制造商维日月周位置顾客地区工厂类型产品类型地区销售员图13.4雪片模式13.2多维数据模型多维数据模型13.2.2多维分析的基本操作多维分析的基本操作切片(切片(Slice)在超立方体cube的某一维上选定一个维成员的操作称为切片。
一次切片使原来的Cube维数减一,即结果为一个维数减一的subcube,如图13.5所示。
切块(切块(Dice):
):
在超立方体Cube上选定两个或更多个维成员的操作称为切块。
13.2多维数据模型多维数据模型13.2.2多维分析的基本操作多维分析的基本操作数据切片数据切片选定时间维的维成员1997年4月1997年4月产品销售情况地区时间商品商品地区产品销售情况图13.5(a)切片13.2多维数据模型多维数据模型13.2.2多维分析的基本操作多维分析的基本操作图13.5(b)切片销售额北京上海天津重庆冰箱500600100150洗衣机300200150200电视机60055020018013.2多维数据模型多维数据模型13.2.2多维分析的基本操作多维分析的基本操作旋转(旋转(Pivot):
):
改变一个超立方体Cube的维方向的操作称为旋转。
旋转用于改变对Cube的视角,即用户可以从不同的角度来观察Cube。
如图13.6(a),是把一个横向为时间,纵向为产品的二维表旋转为横向为产品和纵向为时间的二维视图。
假如对图13.1的Cube把商品维、时间维、地区维执行旋转操作就得到对13.6(b)。
13.2多维数据模型多维数据模型13.2.2多维分析的基本操作多维分析的基本操作时间维产品维产品维时间维行列交换行列交换图13.6旋转操作示例(a)13.2多维数据模型多维数据模型时间维地区维时间维地区维旋转以改变视角电器商品种类电器商品种类电器商品种类图13.6旋转操作示例(b)13.2.2多维分析的基本操作多维分析的基本操作13.2多维数据模型多维数据模型13.2.2多维分析的基本操作多维分析的基本操作向上综合(向上综合(Roll-up):
):
Roll-up也称为上钻操作。
提供Cube上的聚集操作。
包括两种形式,一种是在某个维的某一层次上由低到高的聚集操作,例如在时间维上由日聚集到月,由月聚集到年;另一种是通过减少维的个数进行聚集操作,例如两维Cube中包含有时间维和地区维,如果我们把地区维去掉,则得到一个按时间维对所有地区进行聚集操作。
13.2多维数据模型多维数据模型13.2.2多维分析的基本操作多维分析的基本操作向下钻取(向下钻取(Drill-down):
):
Drill-down也称为下钻操作。
Drill-down是Roll-up的逆操作。
它同样包括两种形式,在某个维的某一层次上由高到低的钻取操作,找到更详细的数据。
或者通过增加新的维来获取更加细节的数据。
13.2多维数据模型多维数据模型13.2.2多维分析的基本操作多维分析的基本操作销售额(万元)1996第1季度第2季度第3季度第4季度北京78453456上海90678791RollUpDrillDown销售额(万元)19961月2月3月北京302622上海283032图13.7Drill-down和Roll-up操作13.3OLAP的实现的实现MOLAP结构直接以多维立方体CUBE来组织数据,以多维数组来存储数据,支持直接对多维数据的各种操作。
人们也常常称这种按照多维立方体来组织和存储的数据结构为多维数据库(Multi-DimensionDataBase,简记为MDDB)。
Arbor公司的Essbase是一个MOLAP服务器。
MOLAP结构的系统环境如图13.8所示。
13.3.1MOLAP结构结构13.3OLAP的实现的实现13.3.1MOLAP结构结构MOLAP服务器多维存取用户DB多维视图DW多维数据库图13.8MOLAP结构的系统环境13.3OLAP的实现的实现MOLAP如何以多维立方体Cube来组织数据的呢?
前面我们已经讲解了多维立方体Cube的数据单元可以表示为:
(维1维成员,维2维成员,维n维成员,度量值)。
多维数组只存储Cube的度量值,维值由数组的下标隐式给出。
关系表则维值和度量值都存储。
13.3.1MOLAP结构结构13.3OLAP的实现的实现首先,和关系表相比,多维数据库组只存储Cube的度量值。
例如图13.1中只存储销售量的值(在表的之间),不存储地区维和商品维的维成员值。
多维数组的存储效率高;其次,多维数组可以通过数组的下标直接寻址,和关系表(通过表中列的内容寻址,常常需要索引或全表扫描)相比,它的访问速度快。
更重要的是,多维数组有着高速的综合速度,因此可以较好地支持向上综合、向下钻取等多维分析操作。
13.3.1MOLAP结构结构13.3OLAP的实现的实现多维数组存储方式存在如下不足:
1.多维数组的物理存放方式通常是按照某个预定的维序线性存放的,不同维的访问效率差别很大。
以图13-9(b)二维数组为例,如果按行存放的话,则访问某电器产品的销售额时,效率很高,因为一次I/O读取的页面包含了多个行值;但访问某地区的销售额时,效率就会降低。
13.3.1MOLAP结构结构13.3OLAP的实现的实现2.在数据稀疏的情况下,即Cube的许多数据单元(维1维成员,维2维成员,,维n维成员,度量值)上无度量值,多维数组由于大量无效值的存在,存储效率会下降。
13.3.1MOLAP结构结构13.3OLAP的实现的实现13.3.2ROLAP结构结构ROLAP将多维立方体结构划分为两类表,一类是事实(Fact)表,另一类是维表。
事实表用来描述和存储多维立方体的度量值及各个维的码值;维表用来描述维信息,包括维的层次及成员类别等。
ROLAP用关系数据库的二维表来表示事实表和维表。
也就是说ROLAP用“星型模式”和“雪片模式”来表示多维数据模型。
13.3OLAP的实现的实现13.3.2ROLAP结构结构同MOLAP相比,关系数据库表达多维立方体不大自然,由于关系数据库的技术较为成熟,ROLAP在数据的存储容量、适应性上占有优势。
当维数增加、减少时只需增加、删除相应的关系,修改事实表的模式,较容易适应多维立方体的变化。
因此,ROLAP的可扩展性好。
13.3OLAP的实现的实现13.3.2ROLAP结构结构但其数据存取较MOLAP复杂。
首先,用户的分析请求(通常用MDX语言来表达),这就需要由ROLAP服务器把MDX转换为SQL请求,然后交由关系数据库管理系统处理。
处理结果还须经ROLAP服务器多维处理后返回给用户。
而且SQL语句尚不能直接处理所有的分析计算工作,只能依赖附加的应用程序来完成,因此执行效率上不如MOLAP高。
13.4小结小结我们主要应把握以下几点:
1.掌握维、层、层次、成员、度量和立方体等主