如何实现 SCD 类型 3
Posted
技术标签:
【中文标题】如何实现 SCD 类型 3【英文标题】:How to implement SCD type 3 【发布时间】:2014-03-09 19:15:45 【问题描述】:一位客户正在更改地址,比如说 5 次。
如何使用渐变维度类型 3 实现 CUSTOMER 维度?
【问题讨论】:
【参考方案1】:客户至少更改了 5 次地址。我认为使用SCD Type-3
跟踪更改不是一个好主意,(因为它不是一个缓慢变化的维度,它属于快速变化的维度类别,那是另一个话题,但我必须说你应该看看它。 ) 这意味着您要在客户表中添加至少 5 列,我不擅长数学。但我想如果你的数据库中有 100 条记录,你将添加 5 列,每列长度为200 character
,考虑到一个字符为 1 个字节,你将增加你的表200*5*100 byte
。而且这种情况很少见,其他 99 位客户免费添加了 5 列。跟踪它的最佳方法是通过SCD Type-2
更改。我相信你知道如何使用SCD Type-2
现在如何使用 SCD Type-3 进行此操作
Step 1:
Add another column old_address
Step 2:
rename previous address column to address_n
Step 3:
update the affected customer data (old_address = address_n WHERE KEY = You_Customer_Key)
Step 4:
Update the address_n with new address
对于 5 次地址更改,请继续迭代 5 次。在address_n
中,n
是您的迭代。
【讨论】:
【参考方案2】:好吧!我不喜欢在答案中粘贴链接,但我认为,答案很长,SCD Type 3 已经有许多可用的实现示例。请参阅以下链接:
Implementing SCD Type 3 with SSIS
和
SCD Type 3 using SSIS
【讨论】:
以上是关于如何实现 SCD 类型 3的主要内容,如果未能解决你的问题,请参考以下文章
使用 Pentaho Kettle 实现 SCD Type 2 (Pentaho Data Integration 5.2)