基本概念

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

数据立方体是一种多维数据模型,下面介绍一下多维模型的相关概念:
• 多维数据模型:为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型,其基本的应用是为了实现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

数据立方体(Data Cube)相关推荐

  1. 数据立方体(Cube)

    如上图所示,这是由三个维度构成的一个OLAP立方体,立方体中包含了满足条件的cell(子立方块)值,这些cell里面包含了要分析的数据,称之为度量值.显而易见,一组三维坐标唯一确定了一个子立方. 多位 ...

  2. 数据立方体-Hive Cube

    目录 1. 数据立方体 2. OLAP的基本操作 3. Hive Cube 3.1 with cube 3.2 with rollup 3.3 Grouping sets 3.4 grouping_i ...

  3. OLAP和数据立方体

    文章目录 数据仓库 多维数据模型 事实表和维表 数据立方体和OLAP OLAP的基本操作 维和立方 数据立方体实例 数据立方体物化 数据仓库 数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决 ...

  4. 【数据挖掘笔记五】数据立方体技术

    5.数据立方体技术 数据仓库系统在各种粒度上为多维数据的交互分析提供OLAP工具,OLAP工具使用数据立方体和多维数据模型对汇总数据提供灵活的访问,因此重点要关注数据立方体的技术.数据立方体技术包括数 ...

  5. mysql构建数据立方体_OLAP数据建模工具Workbench的初步使用(数据立方体的建立)

    OLAP数据建模工具Workbench的初步使用(数据立方体的建立) 概要: 1.workbench工具简介 2.workbench简单操作(附demo) 3.workbench初步使用总结 1.wo ...

  6. 数据仓库、OLAP和数据立方体

    文章目录 数据仓库.OLAP和数据立方体 1. 数据仓库 1.1. 数据仓库定义 1.2. 关键术语解释 2. 数据仓库和数据库的区别 3. OLAP 3.1. 基本概念 1) 维 2)操作 3.2. ...

  7. buc算法java实现,数据挖掘概念与技术(hanjiawei)阅读笔记--第五章(数据立方体技术)...

    BUC 1.BUC(Botom-Up Construction)概念 从顶点方体向下计算冰山立方体 计算稀疏冰山立方体的算法 基于先验性质进行剪枝 ### 2.算法计算 例A(a1,a2,a3),B( ...

  8. SSAS系列——【07】多维数据(查询Cube)

    原文:SSAS系列--[07]多维数据(查询Cube) 1.什么是MDX? MDX叫做"多维表达式",是一种查询语言,是一种和SQL类似的查询语言,它基于 XML for Anal ...

  9. R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象

    R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 目录 R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 #data.t ...

  10. R语言data.table导入数据实战:data.table使用by函数进行数据分组(aggregate)

    R语言data.table导入数据实战:data.table使用by函数进行数据分组(aggregate) 目录 R语言data.table导入数据实战:data.table使用by函数进行数据分组( ...

最新文章

  1. ORM(一)OQL结构图
  2. python web shell
  3. Oracle 原理:逻辑备份和恢复
  4. 两种方法实现在HTML页面加载完毕后运行某个js
  5. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 词向量
  6. 使用Python打造一款间谍程序
  7. 解决Protel 99se 老是未响应的问题
  8. 雨课堂《工程伦理》期末考试答案
  9. 基于SSM的网上购物系统
  10. DevOps平台的“精益创业”之路
  11. 微信小程序开发常见问题解答
  12. 简单合并word文档(转)
  13. Python:PDF文件处理(数据处理)
  14. 对于html转jsp乱码问题
  15. python车牌号4位数_4位数吉祥车牌号码大全 这是常见的数字组合
  16. 普源DG1022U信号发生器技术参数
  17. jmeter+influxdb2+grafana的安装与使用
  18. ftp登录shell为nologin无法登录
  19. 工作电子邮件怎么注册?
  20. SLAM基础——关于SLAM三大矩阵

热门文章

  1. 水哥王昱珩的教育语录:输不丢人,怕输才丢人
  2. hdu 6344调查问卷(状态压缩,百度之星)
  3. Eclipse WindowBuilder安装过程
  4. computed动态颜色
  5. Spring Cloud 微服务开发:入门、进阶与源码剖析 —— 9.4 Spring Cloud Gateway 路由断言工厂
  6. 360与QQ大战,谁之过?
  7. 2018年上半年阅读总结(系统架构师)
  8. 计算机提示无法识别优盘,插入U盘显示无法识别怎么办
  9. 安卓之旅第七站--实战演练之快给小宝宝买装备吧
  10. linux获取cpu使用率,linux获取cpu使用率