离线数仓—DWD层周期快照事实表实现
前言
前面完成了所有事务型事实表的设计,下面进行DWD层唯一一张周期型快照事实表的设计。
一、周期型快照事实表回顾
1.周期型快照事实表概述
周期快照事实表以具有规律性的、可预见的时间间隔来记录事实(记录的不是明细数据),主要用于分析一些存量型(例如商品库存,账户余额)或者状态型(空气温度,行驶速度)指标。
对于商品库存、账户余额这些存量型指标,业务系统中通常就会计算并保存最新结果,所以定期同步一份全量数据到数据仓库,构建周期型快照事实表,就能轻松应对此类统计需求,而无需再对事务型事实表中大量的历史记录进行聚合了。
对于空气温度、行驶速度这些状态型指标,由于它们的值往往是连续的,我们无法捕获其变动的原子事务操作,所以无法使用事务型事实表统计此类需求。而只能定期对其进行采样,构建周期型快照事实表。
使用场景:对于需要大量数据聚合得出结果的数据,而业务数据库中会保存最新结果的数据,可以采用周期快照事实表。
二、交易域购物车周期快照事实表
1.建表原因
这里是因为后面的需求导致需要统计每个用户购物车中每个商品的库存量。
在ODS层中有一张购物车的增量表也有一张购物车的全量表,这里可以解释出原因:如果只有一张购物车的增量表,如果要统计截至当天每个用户每个商品的库存量,需要查找多个分区