数据仓库之三大事实表

Posted 十三先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据仓库之三大事实表相关的知识,希望对你有一定的参考价值。

前言

事实表主要分为事务事实表与周期快照事实表,累计快照事实表。但是它们在描述业务事实方面是有着非常大的差异的。

1.事务事实表(Transaction fact table)

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

事务事实表的日期维度记录的是事实发生日期,它记录的事实是事务活动的内容。用户可以通过事务事实表对事务行为进行特别详细的分析。

通过事务事实表,还可以建立聚集事实表,为用户提供高性能的分析。

举例:

比如,地产行业里面的排卡,订购,签约,回款这些都是一个特定的业务动作。包含有具体业务的发生时间,以及业务发生时的相关渠道,组织,人力,产品以及客户。这样在kimball里面我们对维度进行抽离不落入事实表里面。这个形成了一个典型的star模型。中间的事实表就是一个交易事实表也称为事务事实记录表。

2.周期快照事实表(Periodic snapshot fact table)

周期快照事实表以具有规律性的,可预见的时间间隔来记录事实,时间间隔如每天,每月,每年等等。典型的例子如销售日快照表,库存日快照表等。

周期快照事实表的粒度是每个时间段一条记录,通常比事务事实表的粒度要粗,是在事务事实表之上建立的聚集表。周期快照事实表的维度个数比事务事实表要少,但是记录的事实要比事务事实表多。

周期快照事实表的日期维度通常是记录时间段的终止日,记录的事实是这个时间段内一些聚集事实值。事实表的数据一旦插入即不能更改,其更新方式为增量更新。

举例:

如生产制造企业里面的产品仓库存储。某工厂每天生产的plm件都会进行全球发货。仓库每天会定时进行数据快照,用以统计目前仓库的货物存量记录。该类表可称之为周期快照事实表,主要标记事务在固定周期的变化。时间为数据快照周期。

3.累计快照事实表(Accumulating snapshpt fact table)

累计快照事实表和周期快照事实表有些相似之处,它们存储的都是事务数据的快照信息。但是它们之间也有着很大的不同,周期快照事实表记录的确定的周期数据。而累计快照事实表记录的不确定的周期数据。

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

举例:

电商类网购,在客户完成购物业务动作之后会产生一条订购单,同时也会生成一条快递跟踪信息。快递动态跟踪信息表记录的形式就是累计快照事实表。主要记录事务在主要里程碑节点的状态变化,用于事务的全生命周期管理。

以上是关于数据仓库之三大事实表的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库之事实表设计

Hadoop之数据仓库设计

Hadoop之数据仓库设计

数据仓库相关面试题

BI三大技术支撑之数据仓库

——事实表技术之无事实的事实表