我目前正在致力于构建星型模式。我有两个不同粒度的事实表。
LocationSk
LocationGroupSk
的LocationGroup
我看到的用于分析这两个事实的选项(无需创建特殊视图或聚合表)如下所示:
A.向事实表 A 添加额外的
LocationGroupSk
列,以便两个事实表直接连接到 LocationGroup 维度。我将其称为“雪花”方法,因为我们需要两个维度,并且现在我们的维度中有雪花
B.在事实表 B 中添加一个
LocationSK
列,该列指向“虚拟”位置记录,该记录的 Location 为“N/A”,但 LocationGroup 的值正确,我将其称为“多粒度维度”方法,因为我们将多个颗粒放入一个维度中
有人能指出这两种方法的明显缺点吗?特别是选项 B,因为我找不到任何有关这样做的 Kimball 信息。
在我一位尊敬的同事的帮助下进行了一些调查后,我们确定,如果您只是雪花般地缩小尺寸,Power BI(我在问题中没有提到)可以很好地处理这些情况
因此,如果您只是在 Power BI 中表示上述情况,则不需要任何这些数据库级别的方法。由于其“过滤方向”的概念,它将是正确的事情,不会重复计算等。
例如,主要按照上述方式创建所有事实和维度。
在 Power BI 中以这种方式建模时