OLAP多维数据集操作和MDX如何相关?

时间:2017-10-15 07:26:00

标签: mdx olap-cube iccube

我想了解OLAP-cube操作(即向上/向下钻取,切片/切割和旋转)和MDX是如何相关的。 我目前的猜测是,对MDX的OLAP-cube操作就像SQL的关系代数。但是,我没有看到MDX的一些基本功能如何与OLAP-cube操作相对应。例如,请考虑icCube附带的演示“Sales”多维数据集的以下查询:

SELECT {([Ottawa],[2009]), ([United States],[Feb 2010])} on Rows,
       [Measures].members on Columns
FROM [Sales]

如何使用元组(例如([Ottawa],[2009]))对应于OLAP多维数据集操作?

3 个答案:

答案 0 :(得分:2)

是的,“OLAP-cube操作是预期可实现的可视化工具”。 MDX是针对生成结果的多维数据集执行的查询语言。 OLAP客户端通常针对多维数据集运行MDX。该维基百科中描述的“OLAP多维数据集操作”通常是由于某人对客户端应用程序中的多维数据集执行特别分析而导致的。

Cube提供了一种结构和访问语言,通常可以使这些类型的操作更容易(或至少更快)

MDX如何与“向下钻取”操作相关?例如?

首先,一些MDX已经运行并产生了某种立方体视图(通常是一些行,一些列和交叉点中的度量,尽管MDX语言语法不仅限于两个轴)。

所以一个人看到这些信息并决定向下钻取行中的一个项目(此项目以前是由某些MDX返回的)。因此,OLAP客户端生成一些MDX,它提供项目

的向下钻取视图

它可能只是向相关项目添加子MDX功能。或者它可能会以其他方式做到这一点。这取决于客户。

下面介绍一些关于如何窃听OLAP客户端(哪一个无关紧要)和SSAS多维数据集之间的交互的介绍性信息

https://docs.microsoft.com/en-us/sql/analysis-services/instances/introduction-to-monitoring-analysis-services-with-sql-server-profiler

答案 1 :(得分:0)

您可以想到MDX查询指定多维数据集中空间的区域或区域 - 元组是给予处理器坐标的主要方式,这些坐标对应于您感兴趣的多维数据集的部分。

它是您指定的坐标和切片的交集,为您提供结果。

MDX与集合理论密切相关,因为具有立方体的主要类型是维度,集合,元组,成员等。

答案 2 :(得分:0)

MDX查询定义了一个表,对于每个表格单元格,我们都有一个元组。在您的方案中假设我们有两个度量(Meas1,Meas2):

([Ottawa],[2009],[Meas1])                 ([Ottawa],[2009],[Meas2])
([United States],[Feb 2010],[Meas1])      ([United States],[Feb 2010],[Meas2])

在此单元格元组上,您可以添加WHERE子句,SubQuery和可能与ALL不同的默认值(不建议)。请记住,所有人都是被忽略的“特殊”成员。

元组定义单个度量,Meas1或Meas2,这将选择带有度量列的“事实表”,通常是数值。其他成员用于选择表中的行,在其上执行由元组成员,渥太华和2009定义的所有行上的度量(sum,min,max ....)定义的聚合。正如为什么理论解释的那样,你可以像对待成套一样对成员进行“玩耍”。

这是一个简单的愿景,因为你可以使用calculated members定义转换而不是简单的行聚合(例如与前一年的差异)和一些aggregations更棘手(开放,关...)。

但如果你理解这一点,你就有了理解MDX的完美理由。