如何实现 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的主要内容,如果未能解决你的问题,请参考以下文章

蜂巢:如何在不更新的情况下处理 scd 类型 2

如何获取传入事实记录的精确代理键

使用 Pentaho Kettle 实现 SCD Type 2 (Pentaho Data Integration 5.2)

如何使用 talend 在 snwoflake 表上执行 SCD 1

不同色谱柱的不同 SCD 类型

如何最好地处理缓慢变化维度 (SCD2) 中的历史数据变化