数据仓库系列之维度建模二

      在上一篇文章中我们简单介绍了什么是维度建模以及维度建模的基本要素,这篇文章中我们依然学习了解维度建模中的基本要素事实表和维度表的类型以及维度设计方法。首先里了解维度建模中的事实表类型,在依次介绍维度类型,一致性维度和一致性事实,维度设计方法。接下来进入正题。

      一、事实表 

       事实表存储了从业务活动或事件提炼出来的性能度量,它主要包含维度表的外键和连续变化的可加性数值或半可加事实。事实表产生于业务过程中而不是业务过程的描述性信息。它一般是行多列少,占据数据仓库大约90%的空间。在维度模型中也有表示多对多关系的事实表,其他都是维度表。 

      1、事实表粒度

        事实表的粒度是产生事实行数据的度量事件的业务定义。粒度确定了事实表的业务主键, 事实表的所有度量值必须具有相同的粒度。 

       2、事实表类型

           2.1、事务事实表

           它是面向事务的,其粒度是每一行对应一个事务,它是最细粒度的事实表也称“原子事实表”。事务事实表中的数据在事务事件发生后产生,数据的粒度通常是每个事务一条记录。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。

          2.2、周期快照事实表

          它是按照良好的时间周期间隔(每天,每周,每月)来捕捉业务活动的执行情况,一旦装入事实表就不会再去更新,它是事务事实表的补充,而非替代。典型的例子如销售日快照表、库存日快照表等。周期快照事实表的粒度是每个时间段一条记录,通常比事务事实表的粒度要粗,是在事务事实表之上建立的聚集表。周期快照事实表的维度个数比事务事实表要少,但是记录的事实要比事务事实表多。周期快照事实表的日期维度通常是记录时间段的终止日,记录的事实是这个时间段内一些聚集事实值。事实表的数据一旦插入即不能更改,其更新方式为增量更新。

         2.3、累积快照事实表

         它用于描述业务过程中某个不确定时间跨度里的活动,它随着业务活动的发生会不断的更新。累积快照事实表和周期快照事实表有些相似之处,它们存储的都是事务数据的快照信息。但是它们之间也有着很大的不同,周期快照事实表记录的确定的周期的数据,而累积快照事实表记录的不确定的周期的数据。

         累积快照事实表代表的是完全覆盖一个事务或产品的生命周期的时间跨度,它通常具有多个日期字段,用来记录整个生命周期中的关键时间点。另外,它还会有一个用于指示最后更新日期的附加日期字段。由于事实表中许多日期在首次加载时是不知道的,所以必须使用代理关键字来处理未定义的日期,而且这类事实表在数据加载完后,是可以对它进行更新的,来补充随后知道的日期信息。

        举例来说客户购买商品的整个过程记录:订货日期 预定交货日期 实际发货日期 实际交货日期 数量 金额 运费

        在这个累积快照事实表中,记录的是购买货物的整个生命周期的数据,记录第一次产生时,实际发货日期和实际交货日期是不确定的,需要用表示未知的代理关键字来代替。等实际发货后,需要对数据仓库中的这条记录进行更新操作,将实际发货日期补上。

        3、事实表区别: 

 

数据仓库系列之维度建模二

           二、维度表 

          维度表是对业务过程的上下文描述,主要包含代理键、文本信息和离散的数字。它是进入事实表的入口,丰富的维度属性给出了对事实表的分析切割能力,它一般是行少列多。如果属性值是离散的,用于过滤和标记的,就放到维度表里,如果是属性值是连续取值,可用于计算的,就放到事实表中。

         1、维度表类型

           1.1、缓慢变化维

             1)、类型1

                字段值发生变化时覆盖原来的值。 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwpwy.html