数据仓库与OLAP实践清华大学出版社2第3章多维数据分析基础与方法3.1多维数据分析基础3.2多维数据分析方法3.3维度表与事实表的连接3.4多维数据的存储方式3.5小结33.1多维数据分析基础多维数据分析是以数据库或数据仓库为基础的,其最终数据来源与OLTP一样均来自底层的数据库系统,但两者面对的用户不同,数据的特点与处理也不同。多维数据分析与OLTP是两类不同的应用,OLTP面对的是操作人员和低层管理人员,多维数据分析面对的是决策人员和高层管理人员。OLTP是对基本数据的查询和增删改操作,它以数据库为基础,而多维数据分析更适合以数据仓库为基础的数据分析处理。41.多维数据集(Cube)多维数据集由于其多维的特性通常被形象地称作立方体(Cube),多维数据集是一个数据集合,通常从数据仓库的子集构造,并组织和汇总成一个由一组维度和度量值定义的多维结构。SQLServer2000中一个多维数据集最多可包含128个维度和1024个度量值。52.度量值(Measure)度量值是决策者所关心的具有实际意义的数值。例如,销售量、库存量、银行贷款金额等。度量值所在的表称为事实数据表,事实数据表中存放的事实数据通常包含大量的数据行。事实数据表的主要特点是包含数值数据(事实),而这些数值数据可以统计汇总以提供有关单位运作历史的信息。度量值是所分析的多维数据集的核心,它是最终用户浏览多维数据集时重点查看的数值数据。63.维度(Dimension)维度(也简称为维)是人们观察数据的角度。例如,企业常常关心产品销售数据随时间的变化情况,这是从时间的角度来观察产品的销售,因此时间就是一个维(时间维)。例如,银行会给不同经济性质的企业贷款,比如国有、集体等,若通过企业性质的角度来分析贷款数据,那么经济性质也就成为了一个维度。包含维度信息的表是维度表,维度表包含描述事实数据表中的事实记录的特性。74.维的级别(DimensionLevel)人们观察数据的某个特定角度(即某个维)还可以存在不同的细节程度,我们称这些维度的不同的细节程度为维的级别。一个维往往具有多个级别.例如描述时间维时,可以从月、季度、年等不同级别来描述,那么月、季度、年等就是时间维的级别。85.维度成员(DimensionMember)维的一个取值称为该维的一个维度成员(简称维成员)。如果一个维是多级别的,那么该维的维度成员是在不同维级别的取值的组合。例如,考虑时间维具有日、月、年这3个级别,分别在日、月、年上各取一个值组合起来,就得到了时间维的一个维成员,即“某年某月某日”。9多维数据集示例103.2多维数据分析方法多维分析可以对以多维形式组织起来的数据进行上卷、下钻、切片、切块、旋转等各种分析操作,以便剖析数据,使分析者、决策者能从多个角度、多个侧面观察数据库中的数据,从而深入了解包含在数据中的信息和内涵。111.上卷(Roll-Up)上卷是在数据立方体中执行聚集操作,通过在维级别中上升或通过消除某个或某些维来观察更概括的数据。沿着时间维上卷,由“季度”上升到半年12上卷(续)上卷的另外一种情况是通过消除一个或多个维来观察更加概况的数据。消除“经济性质”维度132.下钻(drill-down)下钻是通过在维级别中下降或通过引入某个或某些维来更细致的观察数据。沿时间维下钻143.切片(slice)在给定的数据立方体的一个维上进行的选择操作。切片的结果是得到了一个二维的平面数据。“时间=1季度”153.切块(dice)在给定的数据立方体的两个或多个维上进行的选择操作。切块的结果是得到了一个子立方体。(度量值=“正常”or“次级”)And(时间=“1季度”or“2季度”)165.转轴(pivotorrotate)转轴就是改变维的方向。交换“时间”和“经济性质”轴173.3维度表与事实表的连接维度表和事实表相互独立,又互相关联并构成一个统一的架构。构建多维数据集时常用的架构:星型架构雪花型架构星型雪花架构在SQLServer2000中,这些架构的中心都是一个事实数据表。181.星型架构维度表只与事实表关联,维度表彼此之间没有任何联系,每个维度表中的主码都只能是单列的,同时该主码被放置在事实数据表中,作为事实数据表与维表连接的外码。星型架构是以事实表为核心,其他的维度表围绕这个核心表呈星型状分布。19星型架构示意图出版社维度表事实数据表年季度月时间维度表时时书店名书店地址业绩维度表时时_id出版社名国家城市时时时_id订购数量书籍单价销售表_id_id时时时时时_id时时时时书籍折扣书籍名书籍类型书籍出版日书籍维度表时时_id作者_id202.雪花型架构(SnowSchema)某个维度表不与事实表直接关联,而是与另一个维表关联。可以进一步细化查看数据的粒度。维度表和与其相关联的其他维度表也是靠外码关联的。也以事实数据表为核心。21雪花型架构示意图作者名性别教育程度作者维度表时时_id事实数据表订购数量书籍单价销售表_id_id时时时时时_id时时时时书籍折扣书籍名书籍类型书籍出版日书籍维度表时时_id作者_id223.星型雪花架构(Star-SnowSchema)将星型架构和雪花式架构合并在一起使用,而成为星型雪花架构。作者名性别教育程度作者维度表时时_id出版社维度表事实数据表年季度月时间维度表时时书店名书店地址业绩维度表时时_id出版社名国家城市时时时_id订购数量书籍单价销售表_id_id时时时时时_id时时时时书籍折扣书籍名书籍类型书籍出版日书籍维度表时时_id作者_id233.4多维数据的存储方式SQLServer2000的Analysis三种多维数据存储方式:MOLAP(多维OLAP)ROLAP(关系OLAP)HOLAP(混合OLAP)241.ROLAPROLAP的数据与计算结果直接由原来的关系数据库取得,存储维度的数据以数据表形式存储在OLAP服务器上。ROLAP将支撑多维数据的原始数据、多维数据集数据、汇总数据和维度数据都存储在现有的关系数据库中,并用独立的关系表来存放聚集数据。不存储源数据副本,占用的磁盘空间最少,但存取速度也比较低。252.MOLAPMOLAP使用多维数组存储数据,它是一种高性能的多维数据存储格式。多维数据在存储中将形成“立方体”的结构。MOLAP存储模式将数据与计算结果都存储在立方体结构中,并存储在分析服务器上。该结构在处理维度时创建。存取速度最快,查询性能最好,但占用磁盘空间较多。263.HOLAPROLAP与MOLAP存储方式的结合。原始数据和ROLAP一样存储在原来的关系数据库中,而聚合数据则以多维的形式存储。这样它既能与关系数据库建立连接,同时又利用了多维数据库的性能优势。缺点是在ROLAP和MOLAP系统之间的切换会影响它的效率。27三种存储方式的比较内容MOLAPROLAPHOLAP源数据的副本有无无占用分析服务器存储空间大小小使用多维数据集小较大大数据查询快慢慢聚合数据的查询快慢快使用查询频度经常不经常经常283.5小结多维数据集是一个数据集合,通常从数据仓库的子集构造,并组织和汇总成一个由一组维度和度量值定义的多维结构。度量值是决策者所关心的具有实际意义的数值。维度是人们观察数据的角度。维的级别是维度的不同的细节程度。维度成员是维的一个取值。数据集合的常用操作有上卷、下钻、切片、切块和转轴。维度表和事实表的连接方式主要有星型架构、雪花型架构以及星型雪花架构。多维数据的存储模式有ROLAP、MOLAP和HOLAP。