事实表中的每行数据代表一个业务事件 (下单、支付、退款、评价等)或者动作行为。
“事实” 这个术语表示的是业务事件的度量值(可统计次数、个数、金额等)。
例如,2020年5月21日,宋老师在京东花了250 块钱买了一瓶海狗人参丸。
维度表: 时间、用户、商品、商家。
事实表: 250 块钱、一瓶,花钱。
每一个事实表的行包括:
1、具有可加性的数值型的度量值。
2、与维表相连接的外键。
通常具有两个和两个以上的外键、外键之间表示维表之间多对多的关系。
事实表的特征:
1、非常的大。
2、内容相对的窄: 列数较少( 主要是外键和度量值,不规范的情况,会有维度,例如姓名、性别等)。
3、经常发生变化,每天会新增加很多。
1) 事务型事实表
以每个事务或事件为单位。
例如:一个销售订单记录,一笔支付记录等,作为事实表里的一行数据。
一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。
数据一旦产生就不会发生变化。
例如支付表,订单表。
2)周期型快照事实表
周期型快照事实表中不会保留所有数据,只保留固定时间间隔的数据。
随着时间变化,数据动态变化。
例如 每天或者每月的销售额,或每月的账户余额等。
例如 购物车,有加减商品,随时都有可能变化,但是我们更关心每天结束时这里面有多少商品,方便我们后期统计分析。
3)累积型快照事实表
累计快照事实表用于跟踪业务事实的变化。
记录一个事件从开始到结束所有过程的时间点。
例如,数据仓库中可能需要累积或者存储订单从下订单开始,
到订单商品被打包、运输、和签收的各个业务阶段的时间点数据来跟踪订单声明周期的进展情况。
当这个业务过程进行时,事实表的记录也要不断更新。