AdventureWorksDW

Posted

技术标签:

【中文标题】AdventureWorksDW【英文标题】: 【发布时间】:2018-03-08 23:13:59 【问题描述】:

我只是在挖掘 AWDW 以了解它的结构和设计逻辑。在这里,我专门谈论 FactProductInventory。如下所示,前 21 行完全相同,只是记录的日期发生了变化。

现在,当您在 ProductKet=1 中继续沿表向下时,您会看到 UnitCost 上下波动,而 UnitIn 和 UnitOut 没有任何变化。我的理解是 Quantity 没有发生变化,但是为什么 UnitCost 会发生变化?我希望这是一个有效的问题。

谢谢

【问题讨论】:

... 因为UnitCost 正在改变。它需要记录在某个地方。在“OLTP”系统(具有为写入而优化的架构的系统)中,您不会看到这样的表。在“OLAP”系统中,表格经过优化,可以快速轻松地进行阅读和分析。 谢谢,尼克。 UnitCost 通常会在发生新购买时发生变化,但由于 UnitBalance 始终为 875,这意味着没有发生新购买,对吧? 正如 Nick 所说的 unitcost 正在改变 - 意思是认为 product_key 为 1 的产品的价格在 2005 年 7 月 21 日之后增加到 0.33 美分。就像价格一天天上涨的日常用品一样。 好的,我明白了,这里的 Cost 是指价格,而不是像 Cost of Good Sold 这样的实际成本。 当供应商更改单位成本时,它可能会发生变化。我们猜测是因为这是虚构数据,因此我们不知道其背后的真实业务流程。 【参考方案1】:

该表似乎被建模为一个定期快照事实表,其中包含每天结束时每种产品的库存、仓库移动(进/出)和成本的快照。因此,表格允许的分析粒度是时间段而不是实际交易(即产品的实际移动或变化)。

定期快照事实表对于此类情况很有用,当业务需求专注于了解一段时间内给定声明中的项目数量时(例如,“2016 年至 2017 年期间产品 X 有多少库存” 在这种情况下,或者“我们生产线的每个阶段有多少物品”):

你可以阅读更多关于周期性快照事实表以及它们与其他事实建模技术的关系here,我会给你留下一个相关的编辑报价:

支持库存水平分析是一项非常适合定期快照事实表的任务。 (...) 定期快照事实表在帮助方面做得很好 了解我们管道中items的数量。它回答了“如何 很多?”问题。我们有多少总库存?

【讨论】:

以上是关于AdventureWorksDW的主要内容,如果未能解决你的问题,请参考以下文章