微软BI MDX中切片和 切块如何理解?

0
已邀请:
4

SkyWalker - MS BI Fans 2013-08-31 回答

当我们用MDX查询Cube的时候, 往往我们要查询的是维度和度量值的子集, 而不是全部, 因此, 就需要在Where条件中添加条件, 而这些条件, 就称为“切片或切块”,通俗地理解, 就如同切土豆, 一刀下去, 就是切片, 第二刀横切, 就成了块, 其实二者的意义, 统称为条件过滤。 没有必要把切片和切块区分的那么清楚, 如果一定要区分, Where子句中, 一个条件,称为切片, 大于等于2个条件, 就称为切块。
3

andrea_zhou - 咨询顾问、BA 2013-08-31 回答

不好答,真不大好答。
理解MDX中的切片、切块,其实类似于理解OLAP中的切片、切块操作。
MDX是什么,Multi-Dimensional Expressions,操作多维的数据库的语言,常见的是查询CUBE。
多维数据库,顾名思义,就是有多个维度了,如时间、地区、产品三个维度,组成一个三维立方体,CUBE。
但是在实际数据的查询、获取和分析利用的时候,并非都是需要同时分析这么多数据的,这些数据全一把上,也是没有意义的。
最易理解的一个切入点是,我们几乎不会去看,我们会想看2013年7月份、北区的数据,那就是在时间轴选择2013年7月成员了,接下来再按地区产品二维来查看了,二维表格的展现,想象成一片,行不。如果不选时间,直接按地区产品来查看,其实也等于时间轴选的是ALL。
如果展现的表格是三维的,譬如行上有时间,2013年5、6、7三个月份,以及南区、北区,列上为各产品线,数据区域为销售额、销售量,那么,得到的数据集,是从我们CUBE里切出来的一个“块”了。
按以上理解,切片、切块是看你的出来的结果集来分的。也确实没必要分那么清楚了。
在MS的联机文档中,可以看到MDX的关于切片切块方面的术语,叫“切片器轴”。
SELECT之后,都会有切片器轴的,只是显示与隐式的区别。
WHERE Set_Expression 后,就是显示,否则为隐式。隐式的情况下,其实是WHERE的 ALL。
可以这么理解,WHERE 的集合中,将对集合中的个元组进行计算。没有WHERE到的就不会计算,就不会到最终得到的结果集中。这样好理解吧?
1

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2013-11-26 回答

如果把 Cube 看作是一个立方体,那么这个立方体实际上就是由很多很多的轴形成的。两个轴形成一个平面,这个平面又以轴的形式与其它轴形成一个平面....就这样形成了一个多维立方体。

成员,轴上的点,即层次结构上的成员。

WHERE 条件中限定了成员的范围,即限定了轴上点的范围。一个完整的轴与其它所有轴交互和一个不完整的轴与其它所有轴交互所形成的空间是不一样的,因此那一块缺省的空间就通过WHERE条件限定轴的长短被切掉了,这就是我理解切片的概念。

具体的理解可以看我写的一篇文章,是我自己对 Cube 中切片概念的理解,不一定十分严谨,但是可以帮助理解个7,8分。

http://www.cnblogs.com/biwork/ ... .html

要回复问题请先登录注册