Chinaunix首页 | 论坛 | 博客

-

  • 博客访问: 4132625
  • 博文数量: 172
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1923
  • 用 户 组: 普通用户
  • 注册时间: 2018-12-20 14:57
文章分类
文章存档

2021年(19)

2020年(81)

2019年(68)

2018年(4)

我的朋友

分类: 敏捷开发

2020-08-17 18:34:56

多维分析主要面向业务用户提供数据查询分析服务,由于业务人员不懂 SQL,也无法完成多表关联(有意义的查询经常是基于多表的),所以在多维分析建模阶段需要将多表转换成单表,也就是 CUBE。这样用户就可以很方便地通过基于一个结果集(CUBE)进行拖拽查询,从不同的角度(维度)观察数据(测度)。

在多维分析中主要的计算就是按照某一个或一些维度汇总测度,如按地区汇总销售额,按年和产品汇总销量等。从运算角度来看,多维分析的本质计算就是:

基于一个表的分组汇总

如果用 SQL 来表达,多维分析的本质就是:

SELECT D,…, SUM(M), … FROM C WHERE D’=d’ AND … GROUP BY D,…

即对数据立方体按某些维度分组汇总某些测度。其中 C 是数据立方体,D,…是选出维度,M,…是聚合测度,聚合函数也可以不是 SUM。D’是切片维度,切块时条件为 D IN (d,…),WHERE 中还可以增加针对某些测度的条件,一般也就是选出某个区间内的值。

针对一个结果集(CUBE),多维分析可以进行切片 / 切块、旋转、钻取 / 上卷等操作。

1. 切片
切片是指针对 CUBE,选择维中固定值进行分析,比如固定时间维度分析地区和产品的销量情况。
imagepng

2. 旋转
旋转也称行列变换,是指维度从行到列或者从列到行,旋转是为了满足用户观察数据的不同习惯。
imagepng

3. 钻取
钻取是从粗粒度到细粒度观察数据的过程,比如我们发现某个汇总值出现异常,就可以通过钻取查看明细数据,找到异常原因。钻取可以从汇总到明细,从上级到下级…
imagepng

从多维分析的本质及其操作来看,多维分析只能完成简单的分组汇总、过滤计算,这在实际业务中还远远不够。常见的固定报表业务,一些报表很难通过简单的分组聚合来实现,经常要编写上千行的 SQL 或存储过程,而且固定报表的表格样式可能很复杂,这些都是多维分析无法实现的。

这种报表数据处理逻辑复杂,每个格子可能对应不同的数据来源,计算逻辑也不一样,在样式方面则会出现表头混乱,大格套小格,动态区域和静态区域混合的情况。
imagepng

这里列举了复杂报表的特点: 这些类型的报表都无法通过多维分析拖拽出来。

事实上,固定报表和自助报表(多维分析)面向的需求场景很不一样,而在 BI 系统中往往会包含三部分内容,固定报表、多维分析和可视化,其中可视化可以由前两部分实现,但固定报表和多维分析往往是不可或缺的,二者相互配合,优势互补。认清了多维分析的能量圈,才能在 BI 系统建设中有的放矢,避免踩坑。

对多维分析和 BI 技术感兴趣的同学还可以搜索“乾学院”,上面有整套的免费“商业智能”技术课程, 或者直接访问下面链接:

阅读(1142) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~