【问题标题】:Slowly Changing Dimension Vs Fact缓慢变化的维度与事实
【发布时间】:2013-08-10 16:18:51
【问题描述】:

我是 DW 的菜鸟。我有一个 Customer 表,其中包含很少更改的基本列,例如 Name、JoinedOn 等。还有另一组可以随时间变化的列,例如“Status”、“CustomerType”、“PublishStatus”、“BusinessStatus”、“CurrentOwner”等。在没有历史的那一刻。在 DW 中,我想跟踪以下列何时更改“Status”、“CustomerType”、“PublishStatus”、“BusinessStatus”、“CurrentOwner”。我觉得如果我创建另一个表来跟踪这些会更好,该表将具有以下列:

"CustomerId", "Status","CustomerType","PublishStatus","BusinessStatus","CurrentOwner", "ExpiredOn","IsCurrent"

这是正确的方法吗?如果是,那么这个新表是一个事实还是一个缓慢变化的维度?我想运行查询,例如 CustomerType 何时从 A 更改为 B?什么时候出版的?当 BusinessStatus 更改时,谁是所有者?

【问题讨论】:

    标签: sql-server database-design ssas data-warehouse dimensional-modeling


    【解决方案1】:

    哪种方法更好地为客户建模实际上取决于您将如何使用相应的维度。例如,如果您想在销售时通过“CustomerType”汇总与“客户”维度相关的一些销售,则只有在将历史详细信息作为缓慢变化维度的一部分时才可以这样做。

    您可能可以直接在代表缓慢变化的“客户”维度的表格上运行大量客户报告。但如果您的客户数量达到数百万,您最好为客户状态更改创建一个单独的事实表(或多个表)。

    所以,总结一下:从一个缓慢变化的维度开始。如果客户数量增长过大,客户状态变化的报告变得太慢,为他们添加一个事实表,不用担心重复数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      相关资源
      最近更新 更多