一位阿里人对数据模型建设的几点思考与总结 - nisjlvhudy的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/nisjlvhudy/article/details/47758749
目前阿里巴巴数据仓库IDL层普遍采用了维度建模的思想,我们俗称的宽表也是维度建模思想的一个物理化方法。关于事实表,在kimball维度建模理论中就定义了事实表有三种类型:“We compare thethree fundamental types of fact tables: transaction, periodic snapshot, andaccumulating snapshot.”。事务型事实表(transaction)的典型代表就是我的浏览宽表;周期性快照(periodic snapshot)事实表的典型代表就是会员、offer静态信息表;而累计型快照的典型代表就是会员宽表中的各种行为统计表。
数据仓库事实表分类 - nisjlvhudy的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/nisjlvhudy/article/details/39235065
1)在数据仓库领域有一个概念叫Transaction fact table,中文一般翻译为“事务事实表”。
事务事实表是维度建模的数据仓库中三种基本类型事实表中的一种,另外两种分别是周期快照事实表和累积快照事实表。
事务事实表与周期快照事实表、累积快照事实表使用相同的一致性维度,但是它们在描述业务事实方面是有着非常大的差异的。
事务事实表记录的事务层面的事实,保存的是最原子的数据,也称“原子事实表”。事务事实表中的数据在事务事件发生后产生,数据的粒度通常是每个事务一条记录。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。
事务事实表的日期维度记录的是事务发生的日期,它记录的事实是事务活动的内容。用户可以通过事务事实表对事务行为进行特别详细的分析。
通过事务事实表,还可以建立聚集事实表,为用户提供高性能的分析。
2)在数据仓库领域有一个概念叫Periodicsnapshot fact table,中文一般翻译为“周期快照事实表”。
周期快照事实表以具有规律性的、可预见的时间间隔来记录事实,时间间隔如每天、每月、每年等等。典型的例子如销售日快照表、库存日快照表等。
周期快照事实表的粒度是每个时间段一条记录,通常比事务事实表的粒度要粗,是在事务事实表之上建立的聚集表。周期快照事实表的维度个数比事务事实表要少,但是记录的事实要比事务事实表多。
周期快照事实表的日期维度通常是记录时间段的终止日,记录的事实是这个时间段内一些聚集事实值。事实表的数据一旦插入即不能更改,其更新方式为增量更新。
3)在数据仓库领域有一个概念叫Accumulatingsnapshot fact table,中文一般翻译为“累积快照事实表”。
累积快照事实表和周期快照事实表有些相似之处,它们存储的都是事务数据的快照信息。但是它们之间也有着很大的不同,周期快照事实表记录的确定的周期的数据,而累积快照事实表记录的不确定的周期的数据。
累积快照事实表代表的是完全覆盖一个事务或产品的生命周期的时间跨度,它通常具有多个日期字段,用来记录整个生命周期中的关键时间点。另外,它还会有一个用于指示最后更新日期的附加日期字段。由于事实表中许多日期在首次加载时是不知道的,所以必须使用代理关键字来处理未定义的日期,而且这类事实表在数据加载完后,是可以对它进行更新的,来补充随后知道的日期信息。
举例来说,
订货日期
预定交货日期
实际发货日期
实际交货日期
数量
金额
运费
区别比较:
根据Kimball的数据仓库理论,事实表分为三种类型:交易事实表、周期快照事实表和累积快照事实表。以下是这几种事实表之间的区别。
特点
交易事实
周期快照事实
累积快照事实
时间/时期
时间
时期
时间跨度较短的多个时点
粒度
每行代表一个交易事件
每行代表一个时间周期
每行代表一个业务周期
事实表加载
新增
新增
新增和修改
事实表更新
不更新
不更新
新事件产生时更新
时间维
业务日期
时期末
多个业务过程的完成日期
事实
交易活动
时间周期内的绩效
限定多个业务阶段内的绩效