欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据仓库缓慢变化维度应对策略

程序员文章站 2022-03-26 10:44:41
...

缓慢变化维

建议仅考虑有分析价值的字段,采用策略记录其变化,否者直接进行UPDATE。


采用拉链表

添加增加有效开始时间,有效结束时间,最新版本标示字段。
比如客户表的婚姻状况发生变化,会新增一条记录,两条记录如下:

客户   婚姻状况  有效开始日期,有效结束日期,最新版本
客户A,未婚,    1988-01-01,  2014-09-24,    N
客户A,已婚,    2014-09-24,  9999-12-31,    Y

缺点:
当事实表与其关联时,需要根据交易日期判断所在范围进行关联,SQL效率比较差。

解决办法,
使用代理键,并在事实表中添加此字段,但此点会使ETL的处理逻辑变的复杂些。
或者在维度表添加版本号字段,并将此字段冗余到事实表中,这样也可以提高表的关联性能。


若维度表特别庞大,且字段变化特别频繁如何处理。若仍采用上面的方法,每次变化则新增一条记录,则势必维度表过于庞大。


建议的处理策略:

根据变化频率,将字段拆分为不变字段,偶尔发生变化字段,常发生变化字段
三种类型字段形成各自的表,不变字段的主表仍采用自然键作为主键,偶尔发生变化和常发生变化的表采用拉链表处理。
访问变化的字段仍需要判断时间范围进行判断。


或者将发生变化的字段,每个字段都单独摘出来形成一个微型维度,包含自己的关键字。
另外新增关联表,采用拉链表保存这些微型维度与主表的对应关系。 。