学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析

一、 OLAP的定义

        OLAP(Online Analysical Processing)也叫联机分析处理,其设计的思想是想让企业的决策者能灵活地、从多方面和多角度以多维的形式观察企业状态和了解企业状况。

        在决策活动中,决策人员需要的数据往往不是单一指标的单一的值,他们希望能从多个角度观察某个指标或者某个值,或者找出这些指标之间的关系。

        举例:

        决策者想知道Canada地区和France地区2013年第一季度和2014年第一季度在销售总额上的对比情况。

我们都知道数据库没有维度和层次结构,只能对基础数据进行查询、更新、删除以及修改。

还是以上面的题目举例,那我们想要拿到决策者想要的数据,就要一个个表去select,数据太多的情况下,也没办法进行多角度分析。OLTP是以数据库为基础的,面向操作人员和低层管理人员。而OLAP是以数据仓库为基础的。它有两个特点:

  • Online:它的实现是由客户/服务器这种体系结构在网络环境上完成的,所以可以对用户的请求快速响应,并进行交互操作。
  • Multidimensional Analysis:就是前面提到的多维分析,这是OLAP的核心。

OLAP理事会给出的定义

OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

OLAP的大部分策略都是将关系型的或普通的数据进行多维数据存储,以便于进行分析,从而达到联机分析处理的目的。这种多维数据库也被看作超立方体,沿着多个存储数据,为用户沿着多个维事务便利地分析数据。

OLAP的简单定义

联机分析处理是共享多维信息的快速分析。

  • 快速性
  • 可分析性
  • 多维性
  • 信息性

二、OLAP准则

  1. 多维概念视图:OLAP的概念模型应该是多维的。用户可以对多维数据模型进行切片、切块、改变坐标, 或者旋转模式中的联合(概括和聚集)数据路径。
  2. 一致稳定的报表性能:
  3. 客户/服务器体系结构:它的多维数据库服务器能够被不同的应用和工具所访问。
  4. 维的等同性:每一数据在其操作功能上都必须等价。
  5. 动态的稀疏矩阵处理
  6. 多用户支持能力

三、OLAP的基本概念

  1. 变量:是数据的实际意义,注意这里指我们要观察的数据,如例子中变量就是的“销售总额”。变量是度量值。如下图中Internet Sales就是一个度量值组,里面有很多度量值。                          学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第1张图片
  2. 维:我们把观察数据的角度成为“维”,也可以理解为统计的指标。如图就有Customer,Due Date,Order Date,Order Date,Product,Ship Date这五个维度。学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第2张图片
  3. 维的层次:人们观察数据的特定角度还可以存在多个描述方面。每个维度里面有很多个子变量,这些子变量称为维的“层次”,如下图中Due Date的Calendar Quarter(季度)和Calendar Year(年份)等。在筛选表达式根据决策者需求选中对应维的层次。学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第3张图片
  4. 维成员:维的取值称为维成员,如果一个维存在层次,则层次变量的取值就是维成员。如上面第一个图中的Canada,France,2013,2014,1。
  5. 多维数组:(维1,维2,...,维n,变量),那这个例子的多维数组就是(Customer,DueDate, Order Date, Product, Ship Date, Sales Amount)
  6. 数据单元(单元格:多维数组的取值。如下图,(Ballard,2011-01-21,2011-01-09,Road-150,2011-01-16,3578.27)就是一个单元格。学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第4张图片

用power bi做报表更直观

学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第5张图片

学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第6张图片

四、OLAP的数据模型

MOLAP数据模型

通过多维数据库引擎从关系型数据库(DB)和数据仓库(DW)中提取数据,然后组织成多维数据库,存放到MDDB(二维数组,或者说矩阵)。它是基于多维数据库的。

ROLAP数据模型

是基于关系型数据库的。它是一个平面结构,在用关系型数据库(sql server,mysql)表示多维数据时,采用星型模型。它是使用复杂SQL从数据仓库中获取数据的。其实我没接触过多维数据库,所以我采用的是ROLAP数据模型,然后用关系型数据库(sql server)来做这个多维数据集展示。

至于什么是星型模型呢,就是用两类表,一是事实表,事实表可以是度量值或者度量值组,里面存着我们所求变量的取值。正如下图中的InternetSales这个度量值组就是事实表。第二类表是维表,如下图中蓝色的表。为什么叫星型呢,事实表在中间,多个维表从它这里发散出去,也许有人觉得这样子像星星吧(\笑),也有人喊它雪花模型。

学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第7张图片

 相比而言,MOLAP的读取速度快,而且可以轻松适应多维分析。人家毕竟是专门为OLAP设计的。

五、用Sql Server(如果你装了的话)(不装也得装!)创建多维数据集,并以星型模型展示

第 1 课:在 Analysis Services 项目内定义数据源视图 | Microsoft Learn

点这个官方链接一步步构建吧。

实例数据库和sql server软件安装资源我有空传到github上,有缘发评论区。

六、多维数据分析的基本操作

多维数据集的展示其实可以有很多种方式,可以在vs2019中的浏览器中操作,也可以导入到excel中,也可以像我一样用power BI。power Bi可以通过矩阵的形式展示。

在power Bi上看的模型图和上面的一样。

学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第8张图片

嗯,这个看起来更像星星(哈哈哈)

下面有四种分析方式:

  1. 切片:是指定了某些维度值,也就是某些维度指定一个维成员之后,来观察剩下维度的变化。但是注意,只能选两个维度来观察,也就是切下(维i,维j,变量这一片。比如在(Customer,Due Date,Order Date,Order Date,Product,Ship Date,Sales Amount)我们这个多维数据集中我们要切片。分析“2013年各客户地区各产品类型各个季度销售额的变化”。那其实就是指定(Due date-Calendar Year=2013)这个维成员,然后观察(Customer-city-all,Product-Class-All,Sales Amount-All)。                           学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第9张图片学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第10张图片
  2. 切块: 想象一下,好几片摞起来是不是变成“块”了,那其实就是把上面的切片中的“指定一个维成员”变成“指定多个维成员”。比如分析“2011-2014年各客户地区各产品类型各个季度销售额的变化”。(Due date-Calendar Year=2011-2014)学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第11张图片大家可以仔细观察一下这个数据和上面那个数据,是不是都变大了,就是从2013变成2011-2014,获取的数据从一片一块,它变厚了。
  3. 钻取:分为下钻和上钻。下钻是指用户在多层数据中能通过导航信息而获得更多的细节性数据,而上钻获取概括性的数据。例如这个数据原来是左边,上钻之后变成右边。学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第12张图片学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第13张图片     同理,原来(上),下钻之后(下)                            学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第14张图片学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第15张图片
  4. 旋转:相当于平面数据将坐标轴旋转,比如行列调换,行列上下移动。维度调换。旋转前(上),旋转后(下)。                                      学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第16张图片学习OLAP和多维数据集构建,并借此实现RLOAP数据模型案例分析_第17张图片

你可能感兴趣的:(数据挖掘与数据仓库,学习,sqlserver,数据挖掘,数据库,1024程序员节)