如果一个DW事实表没有被所有维度唯一标识,会出现什么问题?

And*_*lfe 5 data-warehouse database-design facttable dimensional-modeling

这是我一直在努力解决的一个思想问题。我对事实表中维度值的重复组合的概念有一种发自内心的反感。我已经阅读了很多关于当事实表中的维度组合没有形成唯一键时存在问题的信息。但是,我想了解可能出现的分析失败的确切类型。

请注意,我将事先规定,假设的丑陋事实表具有相同粒度的数据。 假设所有销售都是唯一报告的,但销售时间的最细粒度是一天。显然会有事务共享相同的维度值组合。因此,这种方法不会按照良好实践通常规定的方式汇总每天的交易。

我认为使用标准聚合的简单 DW 查询仍然是正确的。“简单”是指查询中只引用了一个事实表。在聚合/分析度量的通常形式中,我认为查询会产生正确的结果。

尝试通过组合所有维度来选择唯一的事实行会产生一种失败情况。我相信这些类型的查询实际上是未知的;我认为它们没什么用,除非用户想要真正深入到所有维度的最精细级别。我的想法正确吗?

我能看到的唯一可预测和常见的失败案例来自跨事实查询。在这里,额外的基数可能会乘以任何事实表中使用的任何度量。

对于我的学生(以及我的公司工作),我经常被问到“如果我不遵守这条规则会发生什么坏事?” 现在我担心我没有所有的答案。

预先感谢您的想法和答案。

Tom*_*m V 3

我认为在查询数据仓库时,除了您已经说过的问题(跨事实查询)之外,您不会遇到很多问题,尽管如果您知道您的设计是如何完成的并且仅在维度上聚合,我认为您应该还是可以查询到的。您无法连接事实表中的维度键,但仍然可以聚合。

在我看来,如果您只关心每日粒度的聚合,则无需具有更细粒度的维度。

如果您尝试在 ETL 中执行增量加载或更新事实记录而不是执行完整加载,则可能会遇到问题,但有一些方法可以解决这个问题。