DWH事实表设计(计算度量)

时间:2011-12-12 14:32:39

标签: database-design data-warehouse

我有一个名为Sales的度量,由

计算
  • 未经调整的销售
  • 调整X
  • 调整Y

拥有一个包含三列的事实表(UnadjustedSalesValue,AdjX,AdjY)是一个不错的选择吗?

我认为另一种方法可能是为每个比率设置一个帐户维度或单独的事实表。

2 个答案:

答案 0 :(得分:1)

假设3个值处于相同的粒度级别,我会在同一个事实表上找到4个度量列:UnadjustedSales,AdjustmentX,AdjustmentY和AdjustedSales(或任何名称都有意义)。您是否将AdjustedSales实际实现为计算度量或离散值取决于您的数据和工具集。

原因是假设您的“调整”是销售税,运费或客户折扣之类的事情,那么报告用户很可能单独对它们以及最终的AdjustedSales值感兴趣。如果他们还没有表达兴趣,他们几乎肯定会,特别是如果涉及客户折扣(即谁得到多少折扣?)。

话虽如此,目前尚不清楚你所指的是什么样的调整,所以我不确定这一点对你来说有多重要。但作为一般规则,数据仓库旨在以尽可能最低的粒度级别提供尽可能多的信息,因此我认为原则是合理的。

答案 1 :(得分:0)

除非维度有不同之处(即这些指标仅在国家层面上可用,这些只在州一级可用)我将这些都放在同一个事实表中。

对于非雪花图案世界中的架构设计,情况确实如此。仔细考虑为什么你可能想要创建一个1:1的表,其中关系是强制性的(即一个表中总共有一行而另一个表中只有一行)。通常这些模式会在出现特殊技术原因时出现,例如想要将大列存储在不同的磁盘上。