关于数据立方体(Data Cube),这里必须注意的是数据立方体只是多维模型的一个形象的说法。立方体其自己只有三维,但多维模型不只限于三维模型,能够组合更多的维度,但一方面是出于更方便地解释和描述,同时也是给思惟成像和想象的空间;另外一方面是为了与传统关系型数据库的二维表区别开来,因而就有了数据立方体的叫法。因此本文中也是引用立方体,也就是把多维模型以三维的方式为表明进行展示和描述,其实上Google图片搜索“OLAP”会有一大堆的数据立方体图片,这里我本身画了一个:web
OLAP(On-line Analytical Processing,联机分析处理)是在基于数据仓库多维模型的基础上实现的面向分析的各种操做的集合。能够比较下其与传统的OLTP(On-line Transaction Processing,联机事务处理)的区别来看一下它的特色:数据库
数据处理类型 | OLTP | OLAP |
面向对象 | 业务开发人员 | 分析决策人员 |
功能实现 | 平常事务处理 | 面向分析决策 |
数据模型 | 关系模型 | 多维模型 |
数据量 | 几条或几十条记录 | 百万千万条记录 |
操做类型 | 查询、插入、更新、删除 | 查询为主 |
首先要声明的是这里介绍的有关多维数据模型和OLAP的内容基本都是基于ROLAP,由于其余几种类型极少接触,并且相关的资料也很少。数组
MOLAP(Multidimensional)函数
即基于多维数组的存储模型,也是最原始的OLAP,但须要对数据进行预处理才能造成多维结构。优化
ROLAP(Relational)spa
比较常见的OLAP类型,这里介绍和讨论的也基本都是ROLAP类型,能够从多维数据模型的那篇文章的图中看到,其实ROLAP是彻底基于关系模型进行存放的,只是它根据分析的须要对模型的结构和组织形式进行的优化,更利于OLAP。.net
HOLAP(Hybrid)对象
介于MOLAP和ROLAP的类型,个人理解是细节的数据以ROLAP的形式存放,更加方便灵活,而高度聚合的数据以MOLAP的形式展示,更适合于高效的分析处理。blog
另外还有WOLAP(Web-based OLAP)、DOLAP(Desktop OLAP)、RTOLAP(Real-Time OLAP),具体能够参开维基百科上的解释——OLAP。索引
咱们已经知道OLAP的操做是以查询——也就是数据库的SELECT操做为主,可是查询能够很复杂,好比基于关系数据库的查询能够多表关联,可使用COUNT、SUM、AVG等聚合函数。OLAP正是基于多维模型定义了一些常见的面向分析的操做类型是这些操做显得更加直观。
OLAP的多维分析操做包括:钻取(Drill-down)、上卷(Roll-up)、切片(Slice)、切块(Dice)以及旋转(Pivot),下面仍是以上面的数据立方体为例来逐一解释下:
钻取(Drill-down):在维的不一样层次间的变化,从上层降到下一层,或者说是将汇总数据拆分到更细节的数据,好比经过对2010年第二季度的总销售数据进行钻取来查看2010年第二季度四、五、6每月的消费数据,如上图;固然也能够钻取浙江省来查看杭州市、宁波市、温州市……这些城市的销售数据。
上卷(Roll-up):钻取的逆操做,即从细粒度数据向高层的聚合,如将江苏省、上海市和浙江省的销售数据进行汇总来查看江浙沪地区的销售数据,如上图。
切片(Slice):选择维中特定的值进行分析,好比只选择电子产品的销售数据,或者2010年第二季度的数据。
切块(Dice):选择维中特定区间的数据或者某批特定值进行分析,好比选择2010年第一季度到2010年第二季度的销售数据,或者是电子产品和日用品的销售数据。
旋转(Pivot):即维的位置的互换,就像是二维表的行列转换,如图中经过旋转实现产品维和地域维的互换。
首先必须说的是,OLAP的优点是基于数据仓库面向主题、集成的、保留历史及不可变动的数据存储,以及多维模型多视角多层次的数据组织形式,若是脱离的这两点,OLAP将不复存在,也就没有优点可言。
基于多维模型的数据组织让数据的展现更加直观,它就像是咱们日常看待各类事物的方式,能够从多个角度多个层面去发现事物的不一样特性,而OLAP正是将这种寻常的思惟模型应用到了数据分析上。
多维模型的创建是基于对OLAP操做的优化基础上的,好比基于各个维的索引、对于一些经常使用查询所建的视图等,这些优化使得对百万千万甚至上亿数量级的运算变得驾轻就熟。
咱们知道多维数据模型能够从不一样的角度和层面来观察数据,同时能够用上面介绍的各种OLAP操做对数据进行聚合、细分和选取,这样提升了分析的灵活性,能够从不一样角度不一样层面对数据进行细分和汇总,知足不一样分析的需求。