Thinking in Dimensions – MDX Solutions 初学笔记

SQL出现于1970年代,而MDX出现于1997年,最初是微软推出规范的,如今有多家商业应用,规范也改由国际xml组织维护。MDX是为了数据仓库和报表查询设计的。

我的理解和问题:

它不是一个代替SQL的东西。表面上,它比SQL更贴近reporting。第一次听说MDX,并且略微使用后,我以为(到目前我也不确定)SSAS做的事情是,把数据预先聚合好,应对实时的报表查询。这样,对cube的设计就很关键,要反应实际的查询需求。相当于SQL写的data mart之类的应用,只不过内部的很多东西不需要自己用SQL写。

在进入cube处理这种backend的问题之前,先读MDX Solutions这本书的前几章,学习如何用MDX对SSAS的cube进行查询。

我的印象是:thinking in dimensions。所有的概念都是围绕多维数据集展开。而一个查询,也就是指明你需要的(多维)数据(tuple)放在哪个axis上。

基本概念:

Tuple:一个列举的维度排列。每个tuple都有自己的dimensionality。

Set:同样dimensionality的tuple的集合。所以你不能写{([time].[July],[Product].[toys]),([Product].[food],[time].[July])}这样的set。

这是大方向。接下去就要想办法弄明白细节概念:dimension里的hierarchy;hierarchy level下的member;measure也是一个dimension……