编辑导读:在上一篇中,作者讲述了数仓的前世DBMS、今生数仓以及大家耳熟能详的OLAP。本篇文章讲的是数仓的今生——DW数据仓库(包含OLAP操作),一起来文中看一下吧。
上一篇咱们重点把数仓的前世:DBMS 数据库管理系统(OLTP)讲解的非常清楚,大家可戳 《秒懂数仓的前世今生:DBMS、DW、OLTP、OLAP到底是啥?(上篇)》
今天我们重点来讲解下篇数仓今生:DW数据仓库(包含OLAP操作)
由于数据量的不断膨胀,人们对数据需求的精细化(从月到天,从天到小时,从小时到分钟),OLTP仅仅针对关系型数据库做联机事务处理已经无法满足要求。此时,Dataware数据仓库的体系结构应运而生,DW环境中的处理类型可以概括为装载和访问过程。数据一旦被装载,通常是无法更新的,紧接着就会被用于访问查询,用于各类分析。
此时,我们会经常使用一种OLAP的技术优化数据结构,使得企业灵活对数据进行查询访问。
OLAP,即多维数据库管理系统处理,他提供了一种信息系统结构,这种结构可以使得企业对数据进行灵活访问,有多种方式对数据进行切片、分块,可以灵活动态的考察汇总数据和细节数据之间的关系与变化。
DW主要有以下意义和特点
一共分为三层六类
这部分详情可见文章《》
大家在和研发对接的过程中,可能会经常听到OLAP这个词,到底OLAP是啥呢?OLAP是否就等价于DW呢?
其实不是这样的,我们先来区分下DW数仓和OLAP:
所以从本质上来说,两者并不等价,从包含关系上来说,DW包含了OLAP这种操作,OLAP也是DW数仓中的重要一环。如果再直白一点表达这两部分差异,DW数据仓库是一个日常管理和存储数据的地方,OLAP是一种分析数据的方法。
此时肯定有人要问了,我用DBMS的关系型数据库也能进行分析,为啥要用OLAP分析呢?
——关系数据库报表工具当然可以查询、报表和分析存储在表中的多维数据,但随着数据量的增加,性能会变慢。并且需要大量的工作来重新组织结果以关注不同的维度。例如,以前只需要业务A整体的数据,现在要看这个业务下人群1和人群2的数据,或者要看业务A和业务B下有交叉的人群1和人群2的数据情况,再交叉时间维度一起。
多维分析,这就是 OLAP 多维数据集的用武之地以及最大特点。OLAP 多维数据集使用附加层扩展了单个表,每个层都添加了附加维度——通常是维度“概念层次结构”中的下一个级别。例如,立方体的顶层可能按地区销售;附加层可以是国家、省、城市甚至特定商店。
理论上,一个立方体可以包含无数层。(代表三个以上维度的 OLAP 多维数据集有时称为超多维数据集。)层中可以存在更小的多维数据集。例如:每个商店层可以包含按销售人员和产品排列销售情况的多维数据集。在实践中,数据分析师将创建仅包含他们需要的层的 OLAP 多维数据集,以实现最佳分析和性能。
OLAP 多维数据集支持四种基本类型的多维数据分析:
下钻操作
向下钻取操作通过以下两种方法将粗略的数据转换为更详细的数据 :在概念层次结构中向下移动或向多维数据集添加新维度。例如,如果你想查看季度的销售表现,可以以月为单位向下钻取查看每个月的销售额,在“时间”维度的概念层次结构中维度下移。
上卷操作
与下钻相反,上卷通过在概念层次结构中向上移动或减少维数来聚合 OLAP 多维数据集上的数据。例如,可以通过查看每个区域的数据,而不是每个城市的数据,在“位置”维度的概念层次结构中向上移动。
切片操作
切片是通过从主 OLAP 多维数据集中选择一个维度来创建子多维数据集。例如,你可以通过切片来突出表示某业务线第二季度的销售情况
切快操作
切块操作通过在主 OLAP 多维数据集中选择一个小的多维数据集。例如,我只需要分析华南区域男装和妈妈装业务线下半年的销售情况。
旋转操作
旋转当前的多维数据集视图。其实OLAP 的这个操作与Excel中的数据透视表功能相当, OLAP 数据透视表相对更易于使用(仅需较少的专业知识),并且具有更快的响应时间和查询性能。
按数据存储方式(建模类型)分类,可分为 MOLAP、ROLAP、HOLAP等。
MOLAP:Multidimensional(多维的 )OLAP
将数据存储在优化的多维数组中,而不是关系数据库中。
优点:性能绝佳,MOLAP cubes为了快速数据检索而构建,具有最佳的分块和分片操作。可以执行复杂的计算,速度快。
缺点:可以处理的数据量有限,因为所有的计算都是执行在构建的多维数据集上,多维数据集本身不可能包括大量的数据。需要额外的成本,多维数据集技术往往是有专利或现在并不存在在某个组织中。因此,要想采用MOLAP技术,通常是要付出额外的人力和资源成本。
ROLAP:Relational (关系型) OLAP
将分析用的多维数据存储在关系数据库中。这种方式依赖SQL语言实现传统OLAP的切片和切块功能,本质上,切片和切块等动作都等同于在SQL语句中添加“WHERE”子句。
优点:可以处理大数据量,ROLAP技术的数据量大小就是底层关系数据库存储的大小,ROLAP本身没有对数据量的限制。
且可以利用关系型数据库所固有的功能,关系型数据库已经具备非常多的功能。
劣势:性能可能会很慢,因为每个ROLAP包裹实际上是一个SQL查询(或多个SQL查询)关系数据库,可能会因为底层数据量很大,使得查询的时间很长。
HOLAP:Hybrid(混合型) OLAP
将上述两种方式结合,从而可以获取各自的优点。
本文由 @数据产品高远 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于CC0协议