OLAP-cube操作和MDX如何关联?

问题描述:

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

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

如何使用元组(例如([Ottawa],[2009]))对应于一个OLAP立方体操作?

+0

MDX回报“东西”给你看在一个OLAP客户端。当您在OLAP客户端中向下钻取时,客户端会根据您的位置和所钻取的内容以及多维数据集中的层次结构定义来确定一些新的MDX,然后提交该MDX并显示结果。 –

+0

@ Nick.McDermaid你是说OLAP-cube操作符是可视化工具预期实现的?特别是,如果我直接从我的应用程序(例如用C#编写)发送MDX查询并获取对象,那么OLAP-cube操作符是关于访问该对象的各种方法? – AlwaysLearning

+0

你能否澄清你的意思是“OLAP-cube operators”。你的意思是一个OLAP客户端程序?或者您的意思是MDX语言中的实际运营商(+, - )? –

是的,“OLAP-cube操作是可视化工具预期实现的功能”。 MDX是针对产生结果的立方体执行的查询语言。 OLAP客户端通常针对多维数据集运行MDX。如该维基百科中所述的“OLAP多维数据集操作”通常是由一个人对客户端应用程序中的多维数据集执行特别分析的结果。

立方提供了一个结构和通常使这些类型的操作更容易访问的语言(或至少更快)

如何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

你能想到的MDX查询多维数据集内的指定区域或空间的区域 - 元组是给处理器坐标对应于您感兴趣的多维数据集的部分主要方式

它是您指定给出结果的坐标和切片的交点。

MDX是密切相关的设置理论为主要类型withing立方体的维度,集合,元组,成员等

+0

听起来你的答案是MDX不是基于OLAP-cube运算符。那么,什么是OLAP-cube运营商? – AlwaysLearning

+1

什么是OLAP多维数据集操作符? – ic3

+0

@ ic3我的意思是*操作*。请参阅https://en.wikipedia.org/wiki/OLAP_cube#Operations。 – AlwaysLearning

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 ...)定义的聚合。正如Theq解释的那样,与成员一样,你有很多变革可以与成员一起“玩”。

这是一个简单的愿景,因为您可以使用calculated members来定义转换而不是简单的行聚合(例如与前一年的差异),并且某些aggregations有点棘手(打开,关闭...)。

但是,如果你明白这一点,那么你就理解了MDX的理想基础。

+0

我对@whytheq回复的评论也适用于您的回复。 – AlwaysLearning