您的位置:首页 > 其它

3 关于数据仓库维度数据处理的方法探究系列——缓慢变化维概述和原理

2009-10-15 09:21 726 查看
原创于2006年12月07日,2009年10月15日迁移至此。

缓慢变化维
Slowly Changing Dimensions(
A typical slowly changing dimension is a
product dimension in which the detailed description of a
given product is casionally adjusted.

):

数据仓库数据加载规则,数据仓库中用于实现历史数据与当前数据的同时记录。



3.1
概述

缓慢变化维Slowly Changing Dimensions(A typical slowly changing dimension is
a product dimension in which the detailed description of a
given product is casionally
adjusted.):数据仓库数据加载规则,数据仓库中用于实现历史数据与当前数据的同时记录。与OLTP系统不同的是,数据仓库中可以保留下数据的变
化信息,及历史数据的记录。

由于系统的设计不同,
OLTP系
统可以方便的得到实时的报表,却难于得到混合的、复杂的、包含历史的统计信息。数据仓库系统却由于有其专有的建模方式,可以方便的做到这些。在数据仓库
中,一个典型的事实表设计,其包含多个代理主键,周围由多个星形围绕着它的维表构成,这些维表则是一些具有简单主键的表。对于维表数据的历史存储的需要,
一种典型的数据加载规则即是
Slowly
Changing Dimensions方式。即当维表数据发生改变,数据仓库需要感知,并真实的记录下数据的每一步细微变化。


是通过代理键的方式进行维度的加载,一方面导致维度表设计过于复杂,另一方面事实表数据中的相应的键值也需要进行相应的代理键替换,从而导致了设计的复杂
性、数据库性能的下降和维护的成本的提高,因此这些维度通常是根据用户需求和业务敏感度极高的基础表信息,例如某些企业内的工号,因为工号分配的限制,员
工流失后,新进入的员工仍使用原来的员工号,对于
OLTP系统只需要一个简单的
UPDATE即可;而对于数据仓库系统则要区分同一个工号前后不同的人员信息,以避免查询时对同一个工号发生的歧义。



对于一般性的维度,仍建议使用最简单的方式进行维度处理,即覆盖法,对于维度只做更新和插入处理,不做删除,即只保留最后一次更新的状态,不保留历史状态,对于大多数维度信息已经足够。



3.2

原理

缓慢变化维的实现原理,采用的是数据仓库的
3种常用数据加载规则中的全表比对方式。在
ETL过程中,抽取所有源数据,并进行相应规则转换,完成后先不插入目标,而对每条数据进行目标表比对。根据主键值进行插入与更新的判定,目标表已存在该主键值的,表示该记录已有,并进行其余字段比对,如有不同,则进行
Update操作,如目标表没有存在该主键值,表示该记录还没有,即进行
Insert操作。通过全表比对,感知数据的变化,并进行相应的处理。

数据仓库的数据加载规则可以有多种方式实现,缓慢变化维是其中一种非常强大的方式。而根据它的具体设计不同又可分为
3种:覆盖、全历史记录、记录最新纪录及上一次历史。在以下的介绍中将把数据仓库的数据加载规则融入进去,并结合
SQLServer脚本的缓慢变化维的实现详细说明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐