SSAS 2012 - 维度建模

Posted

技术标签:

【中文标题】SSAS 2012 - 维度建模【英文标题】:SSAS 2012 - Dimension Modeling 【发布时间】:2013-05-02 15:45:15 【问题描述】:

我正在使用一种结构,该结构会产生许多不需要层次结构的单一属性维度。例子:

状态(状态名称) 类型(类型名称)

我在编译项目时收到以下警告:

“避免多个维度包含一个属性。如果可能,请考虑统一它们。”

大量的单一属性维度对我们的用户来说是可行的,但它会在 Excel 数据透视表中造成很多混乱。维度与冗余的单个属性一起列出。

我想按照警告的建议统一它们,以便我有一个名为“属性”的单一维度,其中包含状态/类型/等,但我不确定这样做的最佳方法。对我来说,父/子维度在概念上没有意义。

有什么建议吗?

【问题讨论】:

我将尝试使用唯一键的命名查询:social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/… 【参考方案1】:

我同意这是一个值得的改变。我将构建一个将所需属性汇集在一起​​的视图。通常它们都在事实/度量组表/视图中可用,因此您可以使用相同的源对象(在您的 DSV 中)来构建维度。

棘手的部分可能是维度键。最灵活的键是事实代理键,例如每个事实行的唯一值 - 将来您可以添加任何其他基于事实的属性而不会影响键。但是,这不会无限扩展 - 您可能至少可以达到 1m 行。

超出该规模,我将连接属性以形成维度键并将它们传递到新的维度表。我通常会在 ETL 层执行此操作。维度和事实必须使用相同的串联逻辑。

【讨论】:

感谢您的反馈。这种方法效果很好。我的数据相对较小,因此带有事实键的视图是一个很好的解决方案。

以上是关于SSAS 2012 - 维度建模的主要内容,如果未能解决你的问题,请参考以下文章

在 SSAS 中建模多维数据集

SSAS - 日期维度在不合适的地方显示未来值

需要维度建模帮助 - 平面表到星型模式

维度建模疑点

SSAS:菜鸟笔记

SSAS 2012 使用维度值过滤其他维度表