如何为维度仓库中的日期设计缩小的维度表并在SSAS中使用?

Jo *_*ass 5 sql-server ssas data-warehouse dimensional-modeling business-intelligence

我正处于这样一种情况:我们正在从拥有一堆事务性事实表转变为带有聚合,快照等的更复杂的图片.过去,有一些情况下需要按月汇总数据,但是之前的开发人员只是将它所属月份的第一天的密钥放入事实表中的一列,并将其指向通常的日期维度.这似乎工作正常,我们在每个日期维度的多维数据集中都有日/月/年层次结构,并且用户在需要按月查看事物时表现良好.

当我阅读 - 主要是Kimball的作品,以及其他指南 - 建议我们应该在这些情况下使用"缩小的尺寸".Kimball集团甚至特别提到了月度维度.但是我真的没有找到关于在那篇文章之后实现它们的大量信息,而且简短的写作似乎正在重新阐述它的一部分.


我特别关注的一个问题是,目前,使用我们的立方体的人习惯于为每个不同类型的日期设置一个日期维度,其中包含年 - 月 - 日层次结构,并且只有当他们需要时才会降低到月份级别.如果这将导致一个单独的维度与年 - 月层次结构,那么它似乎可能是不受欢迎的混乱.但这是意图吗?

链接文章中的最后两段是我发现的唯一一个解决它应该如何在表示层中起作用的东西,而我只是没有得到他们想要描述的内容.感觉很短的几个例子来充实它应该如何出现在立方体中.通常情况下,我只是试错了,但时间尺度非常紧张.所以...

  • 如果我这样做,立方体中的预期显示是什么?我是否会有两个单独的日期维度,其中一个只会持续到月份?
  • 如果上述内容是正确的,那么真的有很多意义,因为人们当前可以愉快地在月度水平上查询事物吗?我觉得我错过了真正的好处.我可以看到它在语义上更正确(我们处于月份级别,因此持有该月的第一天是hacky并且将显示不相关的属性),但对于已经习惯了这一点的用户,我不相信这是足够的理由现在花更多的时间在这上面.我可以看到它可以表现得更好,因为它是一个较小的维度,但我们没有原样的性能问题.我错过了什么吗?
  • 如果我继续进行更改,那么任何有关使缩小尺寸在立方体中工作的提示?通常情况下,我可以在网上挖掘,直到我将一些东西缩小到最好的几个选项,但实际上并没有多少,我很感激听到之前做过这个的人.没有寻找任何巨大的东西,但是在技术上写的东西比那篇文章还是一个小例子可能会让我对需要做什么和为什么感觉更清楚.在讨论需要将基本维度加入缩小维度以查看属性时,Kimball文章特别困惑我.

前两点是最重要的一点,因为我知道是否需要对数据仓库进行任何更改,如果是这样的话就完成它们 - 我很乐意回答这些问题,即使你不能覆盖第三个点.

Nic*_*aid 4

这不是答案,也不是 Cognos fanboi 的回复。为了进行比较,我想强调如何在其他工具中对多粒度事实进行建模。

http://www-01.ibm.com/support/knowledgecenter/SSWGNW_8.0.0/com.ibm.swg.im.cognos.ug_best.8.4.0.doc/ug_best_id1339multi-factmulti-grainquery.html%23multi-factmulti-谷物查询

http://www.cognoise.com/index.php?topic=17992.0

在第一个链接中:

  • 每月表有一个月份键,并连接到日历表中的月份
  • 每日表有一个日期键并连接到同一个日历表
  • 该链接未显示的是您在幕后定义层次结构级别,以便该工具自动知道不要重复计算每月级别数据
  • 结果是该工具自动知道如何汇总事实

我不是 SSAS 专家,但它似乎不支持这种功能。

如果是这样的话,那么在我看来,“正确”地对数据建模是没有意义的。我所说的正确是指将特定月份分配给仅在每月级别定义的事实。

到目前为止,我认为通过指定该月中的特定日期来建模没有问题。如果事实表都处于同一级别(每月),那么我们知道表中的日期代表一个月。至少您可能想要施加一个检查约束,以确保它是本月的第一天,这样就不会出现歧义。

结果是,当您按月观察每月和每日的事实时,一切都是一致的。当您每天观察每月和每日的事实时,您会在月初看到很大一部分。如果您可以使用 SSAS 隐藏此级别的度量..问题就解决了。