我是新手,想了解 OLAP,我有几个问题。
- 问题 1: OLAP 多维数据集可以存储中位数、众数、百分位数吗?
- 问题 2:用户编写的 MDX 查询能否返回行级数据的摘要?(例如:交易百分比 > 100 美元)。或者多维数据集设计者必须将它添加到多维数据集中?
- 问题 3:现在是否有任何 OLAP 产品提供访问行级数据的机制?哪个?
我们的 IT 部门正在寻找有关我们在使用特定 MS Analsis Services ROLAP 多维数据集时遇到的问题的反馈。我们无权访问它背后的关系数据库,需要执行当前在多维数据集中无法作为度量值的计算。
让我看看我是否有这个权利。
- 立方体可以提供计数、平均值、比例、标准差的统计信息。
- 如果多维数据集设计器提供的度量未满足特定统计信息,我们可以编写 MDX 查询来获取它吗?或者他们是否需要更改多维数据集以便从行级数据预先计算它?
- 多维数据集无法提供中位数、众数或百分位数等统计信息,因为这些统计信息无法正确聚合。
我正在阅读 Leland Wilkinson 的The Grammar of Graphics和他关于数据挖掘和 OLAP 的章节,他说
这些 [立方体运算] 与计数、均值、比例和标准差等统计数据配合得很好。对子类的简单聚合可以通过对总和、平方和和其他项在线性函数中组合以产生基本汇总统计数据进行运算来计算。
它们不适用于中位数、众数和百分位数等统计数据,因为这些统计数据的汇总不是它们汇总的统计数据。例如,中位数的中位数不是聚合的中位数。
他接着补充说:
然而,最近出现了一种更复杂的 ROLAP 模型。通过多种技术,可以让统计算法通过关系模型实时访问原始数据。这种方法比数据立方体等结构提供的刚性聚合更有希望。
在这种架构最优雅的形式中,应用程序可以请求远程连接以提供有关其数据处理方法的信息,并根据返回的信息采取适当的行动。在这种形式下,组件架构可以实现分布式计算的真正承诺:独立于站点、操作系统或语言的设计和执行。
那是大约 2005 年写的。有人知道使用这种方法来允许行级数据访问的产品吗?
按顺序回答您的问题:
如果您想要执行在多维数据集脚本中不直接可用的计算,许多 OLAP 工具(例如后期令人遗憾的 ProClarity)将允许您制定涉及基于 MDX 的自定义计算的查询。除非多维数据集没有您进行实际计算所需的信息,否则自定义 MDX 计算应该能够支持您需要的任何计算。
尽管 OLAP 查询传统上与聚合统计查询相关联,但如果您有一个允许深入了解您需要的细节的维度,那么当然可以制定查询来计算中位数、百分位数或直方图查询,从中可以推断或计算模式。
例如,这里有一个基于排名的帕累托分析查询示例。
许多多维数据集产品可以在混合或关系 OLAP 模式下运行,它们本身不保存数据,而是从底层数据库查询数据。此外,纯 ROLAP 工具(如 Business Objects、Report Builder 或 Discoverer)可以从底层数据库查询并逐行执行工作。但是,它们往往缺乏专用 OLAP 产品的复杂性,并且它们没有太多开箱即用的统计分析能力。