数据仓库类型变化选择

类型1变化

概念

当一个维度值的源发生变化,并且不需要再星型模式中保留历史时,通常采用的是类型1来相应变化情况。仅仅是使用变化的维度值即可。该技术通常应用于源数据元素是为了更正错误而发生更改的情况。

案例

重写维度值,如下所示:关于维度表CustomerJohnson Sue的生日发生了改变,采用类型变化1来处理。这个时候只是修改了维度表的数据,其他的没有发生改变。

采用类型变化1带来的影响是:先前的事实存在的环境发生了改变,所以在制作关于发生变化了的维度属性的报表时,可能出现前后不一致的状态。所以尽量避免使用类型1.

 

 

优势

对于做ETL过程来时是比较简单的,只需要将值进行修改即可。

劣势

不能够维护历史数据,数据元素的变化情况没有保存。从分析上看就是类型变化1只能够分析整个信息,

类型2变化

概念

类型2变化保存了变化的历史事实。描述变化前的事件和过去的值的关联,描述变化后的事实与将与新值关联。

案例

 

这里我们看到采用类型2变化的结果,客户Sue Johnson的地址发生改变(AZ->CA)采用变化类型2.在维度表中添加了新的一行。如果采用类型变化1,那么所有的订单就和现在的居住环境关联,而与以前的没有关系。如果想查看变化前的订单与居住环境的关联是不行的。

 

 

优势

保留了历史事实,过去的事实只与过去的环境进行关联,现在的事实只与现在的环境进行关联。

劣势

在进行ETL过程中需要添加新的行,而且在通过上例中的Customer_ID来进行分组时,需要使用distinct来处理。虽然变化类型2保存了事实的历史环境,但是未能保存维度历史。容易发现给定的某一个自然键在维度表中有多条记录表示,但是却并不知道什么时候采用哪条记录才是合适的。此类信息仅仅以事实的形式展示。所以为了解决这个问题,有时采用时间对的方式,添加两列:开始时间和结束时间。

类型3变化

概念

在大部分的情况下,可以采用类型1变化或者类型2变化来解决问题,但有的时候需要采用类型3变化来解决。当需要分析所有伴随着新值和旧值的变化前后记录的事实时,需要采用类型变化3来解决,而不是采用类型变化1或者类型变化2

主要是要研究两个方面的需求:

1)分析所有事实的能力,使用新值记录变化发生前后的情况

2)分析所有事实的能力,使用旧值记录变化发生前后的情况

对于上述两个需求,单独使用类型变化1或者类型变化2都不能满足需求。

案例

 

在上述案例中,我们可以看到:客户的地址分配从开始的East变为了NorthestSouthest。我们添加了两列,一列记录了先前的地址情况,一列是变化后的地址情况,那么进行分析的时候就可以完全顾及到上面所提出的所有需求。

在上面中region_current始终保持的是最新的值,和类型变化1是一样的。

类型3一般使用在选区和地理重划上,在金融和会计分组也常常采用类型变化3.

优势

采用类型变化3可以做重复的过程。在本例中我们使用了两列来保留历史的情况,如果Robert Davis的区域继续改变,那么这两列继续调整,但是最开始的版本将会不复存在。所以为了弥补这个情况,我们可以设置多列来解决。

比如:region_current /region_last_year/region_two_years_ago等等。

 

劣势

类型变化3不保留事实的历史内容,我们无法通过类型变化3来确定一个事实的发生的确切环境。比如:我们无法确定当产生一个特殊订单是Robert Davis 是属于哪个区域的。这个时候可以结合类型变化2.将会结合类型变化2和类型变化3

类型1/2缓慢变化

概念

因为一些特殊的需求,我们需要将类型1和类型2结合使用。考虑以下需求:当需要设计一个星型模型来跟踪一个订单,这个时候客户的名称不是个人而是公司,而公司的名称是会发生改变的。如果在分析中总是使用公司的最新的名称来使用,那么我们将采用类型变化1,但是如果我们需要考虑在订单生效的时候的公司的名称,那么我们就不能单纯的采用类型变化1或者类型变化2了,

当发生变化的数据的需求导致类型1和类型2变化。这个时候可以提供一对属性来解决,每个属性有相同的来源,但是一个对应的是类型变化1,而另外一个是采用的类型变化2.

案例

 

我们在分析的时候就可以如下方式:

 

 

优势

混合相应是可以重复的,可以记录连续的变化情况。只有在真实的分析需求时候才能实施混合变化,操作型报表可以使用操作型的系统来使用。

劣势

加重了ETL过程,复杂性增加了ETL工作量也降低了可用性。需要确保任何解决方案对需求来说都是切实可行的。

总结

1)在类型2中,我们通过添加时间戳的方式来展开针对维度的时间点的分析。

2)类型3变化提供了历史情况的不同方面。

3)混合的类型1和类型2变化同时结合类型1和类型2变化。

4)类型1变化总是保存最新的值

5)类型2使用最新的值去分析最新的数据,而使用旧值去分析以前的数据。

6)类型3使用最新的值分析所有的数据,同时也可以使用旧值去分析所有的数据。

 




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值