gpt4 book ai didi

sql - 事实表可以充当维度表吗?

转载 作者:行者123 更新时间:2023-12-05 08:54:39 28 4
gpt4 key购买 nike

我正在探索 Kimball's 'The data warehouse tooklit' ,在那里我遇到了事实表充​​当维度的场景,但我对解释大多不是很满意,因为我是维度建模的新手。

我的问题是

  1. 事实表可以用作维度表的实例/示例是什么? (要求举一些容易理解的例子)
  2. 这是一个好的设计吗?

我通读了this tek-tips论坛,但对我帮助不大。

原始来源:Kimball's article

编辑:

连同上面的链接,Kimball's aggregated facts还使我能够询问将聚合事实用作维度的场景。

最佳答案

Kimball 并不是说​​“事实表充当维度”。他说数值有时可以建模为维度属性(维度表中的字段)或事实(事实表中的字段),或两者。

一个典型的例子是产品标价,例如 MSRP(制造商建议零售价)。一些设计师会将其建模为事实(因为它是一个数字 - 即实际上是表格“Sales”)。其他人会将其建模为维度属性(即在维度表“产品”中)。 Kimball 的意思是您可以在同一个模型中同时拥有两者。 MSRP 作为维度属性可用于过滤,而 MSRP 作为事实可用于计算(即 MSRP - Sale Price = Sale Discount)。

要点是这些:

  • 如果您将产品价格建模为属性,这会使您的维度成为“缓慢变化的维度”,因为每次产品标价发生变化时,您都需要更改属性 - 这会增加 ETL 过程的负担。
  • 如果您将产品价格建模为事实,那么只有在事实表中有记录时,您才会将其置于星型模式中。例如,如果某些产品在特定时期没有销售,那么您将不会在系统中获得它们的标价以备不时之需。

在这两个地方都有它可以为您提供最大的灵 active 并简化模型的使用,但会增加 ETL 工作。所以,如果你需要这样的灵 active ,这是一个很好的设计。如果您只打算以一种特定方式使用该值,则可以为自己节省一些数据仓库工作。

关于sql - 事实表可以充当维度表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48922638/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com