中位数,众数,百分位数和OLAP


9

我是新手,试图绕过OLAP,但我有几个问题。

  • 问题1: OLAP多维数据集可以存储中位数,众数,百分位数吗?
  • 问题2:用户编写的MDX查询能否返回行级数据的摘要?(例如:%交易> $ 100美元)。还是多维数据集设计者必须将此添加到多维数据集?
  • 问题3:现在有没有OLAP产品提供访问行级数据的机制?哪一个?

我们的IT部门正在寻找有关特定MS Analsis Services ROLAP多维数据集所遇到的问题的反馈。我们无权访问其背后的关系数据库,并且需要执行多维数据集中当前不可用的计算。

让我看看我是否拥有这项权利。

  1. 多维数据集可以提供计数,均值,比例,标准差的统计信息。
  2. 如果没有通过多维数据集设计器提供的度量来满足特定的统计信息,我们可以编写MDX查询来获取它吗?还是他们需要更改多维数据集以便从行级数据进行预先计算?
  3. 多维数据集无法提供诸如中位数,众数或百分位数之类的统计信息,因为这些统计信息无法正确聚集。

他说,我正在阅读利兰·威尔金森(Leland Wilkinson)的《图形语法》及其有关数据挖掘和OLAP的章节。

这些[多维数据集运算]可以很好地处理统计数据,例如计数,均值,比例和标准偏差。可以通过对和,平方和和其他项进行运算来计算子类上的简单聚合,这些和在线性函数中组合以产生基本的汇总统计信息。

它们不适用于中位数,众数和百分位数之类的统计信息,因为这些统计信息的总和不是其总和的统计信息。例如,中位数不是聚合的中位数。

他继续补充:

但是,最近出现了一个更复杂的ROLAP模型。通过多种技术,可以使统计算法通过关系模型实时访问原始数据。这种方法比诸如数据多维数据集之类的结构提供的刚性聚合更有希望。

在此体系结构最优雅的形式中,应用程序可以请求远程连接以提供有关其数据处理方法的信息,并根据返回的信息采取适当的措施。以这种形式,组件体系结构可以实现分布式计算的真正希望:独立于站点,操作系统或语言的设计和执行。

那是在2005年左右写的。有人知道采用这种方法的产品可以进行行级数据访问吗?


1
没有参加者?关于如何改善问题以得出答案的任何建议?
汤米·奥戴尔

Answers:


5

要按顺序回答您的问题:

  1. 多维数据集不存储中位数,众数(甚至平均值),但是您可以编写查询来计算它们,并将其作为计算得出的度量值嵌入到多维数据集中。嵌入这种计算能力是OLAP技术的主要独特卖点之一。
  2. 如果您有一个可以识别单个行的维(可以是事实表中的标识符派生的退化维或“事实”维),则可以基于单个行进行查询。但是,OLAP在维和聚合方面起作用,因此您需要具有一个能够识别单个行的维(聚合由一个值组成)。
  3. 任何OLAP工具都可以执行(2)中所述的操作,此外它们通常还支持一种称为“追溯”的机制,在该机制中,多维数据集将返回您钻取到的给定切片之下的事务数据的边界。

如果要执行多维数据集脚本中不直接可用的计算,则许多OLAP工具(例如,哀叹的最新ProClarity)将允许您制定涉及基于自定义MDX的计算的查询。除非多维数据集没有您进行实际计算所需的信息,否则自定义MDX计算应能够支持您需要的任何计算。

尽管OLAP查询传统上通常与统计查询相关联,但如果您具有允许向下钻取详细信息的维度,则肯定可以制定查询来计算中位数,百分位或直方图查询,从而可以从中推断或计算模式。

例如,这有一个基于排名的pareto分析查询的示例。

许多多维数据集产品可以在混合或关系OLAP模式下运行,在这种模式下,它们不自己持久存储数据,而是从基础数据库查询数据。此外,纯ROLAP工具(如Business Objects,Report Builder或Discoverer)可以从基础数据库中查询并逐行进行工作。但是,它们往往缺乏专用的OLAP产品的先进性,并且没有太多的现成的统计分析功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.