数据立方体(Data Cube)

基本概念

先给出一个数据立方体的直观感受,如下图所示


在这里插入图片描述

数据立方体是一种多维数据模型,下面介绍一下多维模型的相关概念:
• 多维数据模型:为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型,其基本的应用是为了实现OLAP(Online Analytical Processing)
• 立方体:它是由维度构建出来的多维空间,包含了所要分析的基础数据,所有的聚合数据操作都在它上面进行
• 维度:观察数据的一种角度,比如在上图中address、item、time都可以被看作一个维度,直观上来看维度是一个立方体的轴,比如三个维度可以构成一个立方体的空间
• 维度成员:构成维度的基本单位,比如对于time维,包含Q1、Q2、Q3、Q4四个维度成员
• 层次:维度的层次结构,它存在两种:自然层次和用户自定义层次。比如对于时间维,可以分为年、月、日三个层次,也可以分为年、季度、月三个层次。一个维可以有多个层次,它是单位数据聚集的一种路径
• 级别:级别组成层次,比如年、月、日分别是时间维的三个级别
• 度量:一个数值函数,可以对数据立方体空间中的每个点求值;度量值自然就是度量的结果
• 事实表:存放度量值得表,同时存放了维表得外键,所有分析所用得数据最终都来自事实表
• 维表:对于维度的描述,每个维度对应一个或多个维表,一个维度对应一个表的是星型模式,对应多个表的是雪花模式


在这里插入图片描述

一个n维的数据的立方体称为基本方体。给定一个维的集合,可以构造一个方体的格,每个都在不同的汇总级或不同的数据子集显示数据,方体的格称为数据立方体。0维方体存放最高层的汇总,称为顶点方体;存放在最底层汇总的方体称为基本方体。

数据立方体(Data Cube)

数据立方体只是多维模型的一种形象的说法,它只有三维,但多维数据模型不仅限于三维,它可以是n维的。之所以这么叫是为了让用户更容易想象,方便解释和说明,同时也为了和传统的关系数据库中的二维表进行区分。


在这里插入图片描述

所以,我们可以把任意的n维数据立方体看做是(n-1)维立方体的序列,比如可以将4-D立方体看做是3-D立方体的序列


在这里插入图片描述

多维数据模型的模式

多维数据模型的模式主要有星形模式、雪花模式和事实星座模式。

  1. 星形模式
    它是最常见的模式,它包括一个大的中心表(事实表),包含了大批数据但是不冗余;一组小的附属表(维表),每维一个。如下所示,从item、time、branch、location四个维度去观察数据,中心表是Sales Fact Table,包含了四个维表的标识符(由系统产生)和三个度量。

每一维使用一个表表示,表中的属性可能会形成一个层次或格。


在这里插入图片描述

  1. 雪花模式
    它是星模式的变种,将其中某些表规范化,把数据进一步的分解到附加的表中,形状类似雪花。

    如下所示,item这个维表被规范化,生成了新的item表和supplier表;同样location也被规范化为location和city两个新的表。


    在这里插入图片描述

  2. 事实星座
    允许多个事实表共享维表,可以看作是星形模式的汇集。如下所示,Sales和Shipping两个事实表共享了time、item、location三个维表。


    在这里插入图片描述
    总体来说,在数据仓库中多用事实星座模式,因为它能对多个相关的主题建模;而在数据集市流行用星形或雪花模式,因为它往往针对于某一个具体的主题。

OLAP

OLAP(On-line Analytical Processing,联机分析处理)是在基于数据仓库多维模型的基础上实现的面向分析的各类操作的集合。可以比较下其与传统的OLTP(On-line Transaction Processing,联机事务处理)的区别来看一下它的特点:

OLAP与OLTP


在这里插入图片描述

OLAP的类型

首先要声明的是这里介绍的有关多维数据模型和OLAP的内容基本都是基于ROLAP,因为其他几种类型极少接触,而且相关的资料也不多。

  • MOLAP(Multidimensional)
    即基于多维数组的存储模型,也是最原始的OLAP,但需要对数据进行预处理才能形成多维结构。

  • ROLAP(Relational)
    比较常见的OLAP类型,这里介绍和讨论的也基本都是ROLAP类型,可以从多维数据模型的那篇文章的图中看到,其实ROLAP是完全基于关系模型进行存放的,只是它根据分析的需要对模型的结构和组织形式进行的优化,更利于OLAP。

  • HOLAP(Hybrid)
    介于MOLAP和ROLAP的类型,我的理解是细节的数据以ROLAP的形式存放,更加方便灵活,而高度聚合的数据以MOLAP的形式展现,更适合于高效的分析处理。
    另外还有WOLAP(Web-based OLAP)、DOLAP(Desktop OLAP)、RTOLAP(Real-Time OLAP),具体可以参开维基百科上的解释——OLAP。

OLAP的基本操作
我们已经知道OLAP的操作是以查询——也就是数据库的SELECT操作为主,但是查询可以很复杂,比如基于关系数据库的查询可以多表关联,可以使用COUNT、SUM、AVG等聚合函数。OLAP正是基于多维模型定义了一些常见的面向分析的操作类型是这些操作显得更加直观。

OLAP的多维分析操作包括:钻取(Drill-down)、上卷(Roll-up)、切片(Slice)、切块(Dice)以及旋转(Pivot),下面还是以上面的数据立方体为例来逐一解释下:


在这里插入图片描述

  • 钻取(Drill-down):在维的不同层次间的变化,从上层降到下一层,或者说是将汇总数据拆分到更细节的数据,比如通过对2010年第二季度的总销售数据进行钻取来查看2010年第二季度4、5、6每个月的消费数据,如上图;当然也可以钻取浙江省来查看杭州市、宁波市、温州市……这些城市的销售数据。

  • 上卷(Roll-up):钻取的逆操作,即从细粒度数据向高层的聚合,如将江苏省、上海市和浙江省的销售数据进行汇总来查看江浙沪地区的销售数据,如上图。

  • 切片(Slice):选择维中特定的值进行分析,比如只选择电子产品的销售数据,或者2010年第二季度的数据。

  • 切块(Dice):选择维中特定区间的数据或者某批特定值进行分析,比如选择2010年第一季度到2010年第二季度的销售数据,或者是电子产品和日用品的销售数据。

  • 旋转(Pivot):即维的位置的互换,就像是二维表的行列转换,如图中通过旋转实现产品维和地域维的互换。

OLAP的优势
OLAP的优势是基于数据仓库面向主题、集成的、保留历史及不可变更的数据存储,以及多维模型多视角多层次的数据组织形式。

  • 数据展现方式
    基于多维模型的数据组织让数据的展示更加直观,它就像是我们平常看待各种事物的方式,可以从多个角度多个层面去发现事物的不同特性,而OLAP正是将这种寻常的思维模型应用到了数据分析上。

  • 查询效率
    多维模型的建立是基于对OLAP操作的优化基础上的,比如基于各个维的索引、对于一些常用查询所建的视图等,这些优化使得对百万千万甚至上亿数量级的运算变得得心应手。

  • 分析的灵活性
    我们知道多维数据模型可以从不同的角度和层面来观察数据,同时可以用上面介绍的各类OLAP操作对数据进行聚合、细分和选取,这样提高了分析的灵活性,可以从不同角度不同层面对数据进行细分和汇总,满足不同分析的需求。

参考:

《数据挖掘概念与技术》第三版-第4章

http://webdataanalysis.net/web-data-warehouse/data-cube-and-olap/

https://blog.csdn.net/bbbeoy/article/details/79073725

Kylin的工作原理本质上是基于MOLAP(Multidimensional Online Analytical Processing)Cube的多维立方体分析。MOLAP Cube数据分析中经典的理论,早在关系数据库时代就有广泛应用。在Kylin中,维度(Dimension)和度量(Measure)是两个重要的概念。维度是描述数据的属性,而度量是对数据进行计量和分析的指标。\[1\] 在Kylin中,为了优化查询性能,会对每种维度的组合进行预计算,这些预计算结果被称为Cuboid。每个Cuboid代表了一个特定的维度组合。例如,如果有4个维度,就会有2^4=16个Cuboid需要计算。然而,在实际情况中,用户的维度数量通常远远大于4个,这就导致了Cuboid的数量急剧增加。为了减少Cuboid的生成,需要进行Cube的剪枝优化。\[2\] 在构建维度数量较多的Cube时,特别需要注意Cube的剪枝优化。一个Cube中的维度基数可以反映出Cube的复杂度。如果一个Cube中有多个超高基数维度,那么这个Cube的膨胀概率就会很高。在创建Cube之前,需要对所有维度的基数进行了解,以便设计合理的Cube。\[3\] #### 引用[.reference_title] - *1* *2* [Kylin原理解析](https://blog.csdn.net/huahuaxiaoshao/article/details/107521303)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [kylin的cube的原理](https://blog.csdn.net/woshimeilinda/article/details/104711770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值