浅谈数据仓库(DW & BI)(四)

历史文章:

#42 浅谈数据仓库(DW &BI)(一):数据仓库发展起源及概述

#43 浅谈数据仓库(DW &BI)(二):粒度、存储、3NF、星型模型、雪花模型

#44 浅谈数据仓库(DW &BI)(三):企业数据仓库架构、数据集市简介

最近一段时间,频繁听到数据中台的概念,尤其是阿里巴巴的数据中台,不太了解数据中台是什么,这几天在网上学习了一下,发现似乎与企业数据仓库差别不大?(求指教)我理解的主要区别在于数据中台做全域数据接入,还有很多非业务系统的非结构化数据,另外数据开放、外部应用更多,对业务支撑的接口更多,也提供了更多平台能力。

做为数仓的重要工具,今天主要聊一下数仓的OLAP(Online Analytical Processing)吧~

OLAP不同于操作型数据库的OLTP(Analytical Transaction),OLTP主要做事务处理,OLAP主要做数据分析和展示,提供直观的查询结果。

OLAP核心建立于数据立方体上(Data Cube)之上,那么什么是数据立方体呢?从网上找了一张图,见下:


其实就是不同维度上(可以是一维、二维、三维甚至N维)的各类度量的一个立方体。

维度(Dimension):观察数据的角度,是一个用来过滤、分类的描述性事实,例如销售的产品、销售的区域、销售的时间。

度量(Measure):具体的统计量,例如总销售额、总销售量、平均销售额等。

维度又有不同的层次(Level),比如销售时间可以是日层次、月层次、季度层次、年层次。

维的具体成员(Member),是指某一维内的具体取值,比如性别中包含男、女、不详三个成员。。

然后OLAP其实在把玩这个数据立方体,通过各种操作,将预设的立方体翻来覆去,以达到分析数据的效果,有点类似获取数据之后,在excel中通过行列转换、筛选器(切片器)的方式做数据透视表。具体的方法有:

1、钻取(Drill-down)& 上卷(Roll-up):钻取是从高维的维度向下钻,例如看2018年的销售情况,向下变成看2018年1月至2018年12月各月的销售情况。上卷反之,例如将桌子和椅子划为一个新整体来观察。

2、切片(Slice):选择特定维成员看具体数据。

3、切块(Dice):选择特定范围内的维成员看具体数据。

4、旋转(Pivot):行列转换。


然后OLAP根据数据存储的架构,分为这么几种:

MOLAP(Multidimensional):多维OLAP架构是实际生成了一张存放数据立方体的表,所有的信息和维度都已经在这张表内被设计、计算好,速度比较快,存储上会耗费多一点。

ROLAP(Relational):关系型OLAP实际后台存储的是事实表和维表(一般是星型模型),前台的查询会直接转化为SQL,后台访问相关表做join处理,速度比较慢。

HOLAP(Hybrid) :混合OLAP,灵活部署,使用频率多的应用采用MOLAP模式,使用频率低、数据量小一点的应用采用ROLAP模式。

OLAP如果按照处理方式划分的话,则可以分为Server OLAP与Client Olap,Server OLAP比较常见,在服务器端进行分析处理,然后将结果返还给用户。ClientOLAP则是用户端下载数据到本地,在本地做数据处理。

目前的一些OLAP工具:Congos、Mondrian、Superset、Druid、Flink等。

你可能感兴趣的:(浅谈数据仓库(DW & BI)(四))