繁体   English   中英

慢慢改变尺寸与事实

[英]Slowly Changing Dimension Vs Fact

我是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改变谁是所有者?

对客户建模的哪种方式更好取决于您将如何使用相应的维度。 例如,如果您希望在销售时通过“CustomerType”汇总与“客户”维度相关联的某些销售,则只有将历史详细信息作为缓慢变化维度的一部分时才能实现。

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

总而言之:从一个缓慢变化的维度开始。 如果客户数量增长太大并且客户状态更改报告变得太慢,请为他们添加事实表,而不必担心重复数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM