子系统九:缓慢变化维管理系统

ETL结构中最为重要的元素之一是实现缓慢变化维度(Slowly Changing Dimension , SCD)。这里简单对缓慢变化维的几种处理方式做下总结,数据僧在之前的文章中有详细介绍缓慢变化维。

SCD1:重写;在已有的维度行中重写一个或多个属性。

SCD2:增加新行;复制先前维度行的版本,从头开始建立新行。

SCD3:增加新属性;在原列中添加新增的值,将已经存在的列值添加到新增加到的列中。




机器学习数据维度增强 数据增长维度_增加维度

SCD3:增加新属性



SCD4:增加微型维度;微型维度需要有自己的主见。主维度的主键和微型维度的主键都必须出现在事实表中。




机器学习数据维度增强 数据增长维度_数据仓库_02

SCD4:增加微型维度



SCD5:增加微型维度和SCD1支架;




机器学习数据维度增强 数据增长维度_数据仓库_03

SCD5:增加微型维度和SCD1支架



SCD6:在SCD2维度中增加SCD1属性;这种处理方式是SCD3的另外一种实现。




机器学习数据维度增强 数据增长维度_数据仓库_04

SCD6:在SCD2维度中增加SCD1属性



如何使用以上的这些缓慢变化的处理方式呢?




机器学习数据维度增强 数据增长维度_主键_05

SCD代理键管理的处理流程



维度表为事实表提供了接入点。它对于DW/BI 系统的成功起关键的作用。为事实表以及所有的度量提供环境。

子系统十:代理建生成系统

目标是产生一个无语义的键,通常是一个整数,成为维度行的主键。代理键生成器能独立地为所有维度产生代理键;避免级联 源系统的操作型键或者日期,时间戳。尽管方法简单,但是始终会存在问题,最终可扩展性无法得到保障。

子系统十一:层次管理系统

维度中通常具有多个同时存在,嵌入的层次结构。层次可以是固定的也可以是参差不齐的。固定深度的层次具有一致的层次号。类似通信地址这样的轻微残次不齐的层次往往被建模成固定层次。具有不确定的深度,则需要使用组织映射的桥接表。不建议使用雪花或者规范化数据结构来表示层次,但是在过渡区使用可能是比较合适,可用于辅助维护ETL数据流以添加或维护层次属性。ETL系统负责强化业务规则以确保维度表中加入适当的层次。

子系统十二:特定维度管理器

是一种支持组织特定维度设计特征的ETL结构的占位符。

1,日期、时间维度:唯一一种在数据仓库项目开始时,就完整定义的维度。

2,杂项维度:涉及从事实表中删除所有关键属性后遗留下来的文本和繁杂的标识




机器学习数据维度增强 数据增长维度_数据仓库_06

建立杂项维度行的结构



3,微型维度:在大型维度中当 SCD2技术不可用时使用。非常大,复杂的维度 通常需要多个微型维度。

4,缩减子集维度:其行或列是基维度的子集。根据基维度建立一致性缩减维度,而不是独立于基维度,以确保一致性。

4,小型静态维度:有ETL系统在没有真实外部来源的情况下建立。这些维度通常是小型的查询维度,在维度操中操作型代码被转换为字词。查询维度简单的由ETL小组直接建立

5,用户维护的维度:适当由业务用户部门负责维护这些属性。DW/BI小组需要提供适当的接口。ETL系统应该为新行添加默认属性值,并且有负责维护的用户进行更新,否则他们让然会以默认描述的方式出现在报表中。