用于捕获不同日期计划的销售权重的维度模型

Posted

技术标签:

【中文标题】用于捕获不同日期计划的销售权重的维度模型【英文标题】:Dimensional model to capture Sales weighting on different date schedules 【发布时间】:2016-04-07 02:21:31 【问题描述】:

我们需要制定一种策略,以在不同的时间表上显示按日期加权的销售收入数据。

我们目前有一个 FactSales 表,其中每个订单的粒度为一行,用于衡量销售额。我们有单独的 DimDate 和 DimTime 维度,以及一个 DimBusinessUnit 维度,组织内的每个实体都有一行。

在 DimDate 中,我们为美国主要假期设置了标志,因此我们知道销售收入可能会减少。此标志将在全球范围内应用。

问题是不同的业务部门的收入天数可能会很慢。例如,一个业务部门的周一可能会很慢,而另一个业务部门的周五可能会很慢。为了进行分析,最好使用标志或权重来捕获这些不同的时间表。

最终这可能会反映为计算度量中的预计销售额。

如何才能最好地添加此权重?它属于 Date 维度、Business Unit 维度还是 Fact 表中的退化维度,还是完全属于其他维度?

【问题讨论】:

【参考方案1】:

DimDate 可能不是保存此信息的好地方,因为每个业务部门 (BU) 可能有不同的时间表,因此很可能您必须在每个日期上都有一个标志,每个 BU 和缓慢的一天。因此,例如,如果 BU1 和 BU2 在星​​期一有一个缓慢的一天,那么 DimDate 中的每个星期一都必须有一种方式表明 BU1 和 BU2 的速度很慢。

Dimension BU 可能是一个更好的地方,因为时间表是针对每个单元的。因此,您可以选择通过添加 7 天作为属性来扩展您的昏暗度,并将它们标记为慢或不使用例如 false 或 true 标志。您还可以有一个带有位掩码的属性,即 0100000,其中值的位置对应于一天,即 M T W T F S S 并且 0 不慢,1 慢,所以在这个例子中,T 是慢天。

如果您希望选择相关的 SCD 流程,这也将允许您跟踪历史记录。

另一个选项可能是单独的维度,即 DimSchedule 和 Factless Fact Table。

http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/factless-fact-table/

我希望这会有所帮助。

【讨论】:

7 天的标志很好,但不是位掩码。它不能很好地转化为最终用户工具。 没错,位掩码是打包属性的一个示例,我也将避免使用它。然而,问题是围绕可能的解决方案,位掩码肯定是其中之一。【参考方案2】:

您的情况似乎与 Kimball 描述的多个国家日历问题相同:

http://www.kimballgroup.com/1998/12/think-globally-act-locally/

Kimball 在最左边的表格中描述节假日的地方,您也可以添加一个“slow day”标志。

【讨论】:

以上是关于用于捕获不同日期计划的销售权重的维度模型的主要内容,如果未能解决你的问题,请参考以下文章

您如何使用 MDX 计算 MTD/YTD 平均工作日销售额?

如何使用不同谷物的事实表对日期维度进行建模

如何定义维度在 ssas 中使用的连接

具有产品和库存维度的销售事实的维度建模

数据仓库中的交叉引用事实和维度

SQL Server保存表的当前状态以进行报告[关闭]