第九章 事实表设计之事实表基础


事实表特性

1)事实表描述了业务过程,包含引用的维度和业务的度量,与维度表相比数据量大得多,增长速度快得多

2)描述业务过程的细节程度称为粒度

3)可分为可加性,半可加性、不可加性三性质的事实表:

① 可加性:可以按照事实表关联的任意维度进行汇总

② 半可加性:可以按照事实表关联的部分维度进行汇总,如库存可以按照地点,商品汇总,但按时间汇总则没有意义

③ 不可加性:不具备可加性,如比率型事实。对于不可分事实可分解为可加的组件实现聚集

4)把维度属性保存在事实表中称为“维度退化”

5)事实表的三种类型:

① 事务事实表:用来描述业务过程,保存空间、时间上某点的度量时间

② 周期快照事实表:以具有规律性的时间间隔记录事实

③ 积累快照事实表:记录开始时间和结束时间的关键事件,在生命周期中随业务过程的变化而变化


事实表设计原则

1)尽可能包含所有业务相关事实,即使会冗余。因为事实表通常为数值型,带来的开销在可以忍受的范围内,却可以极大的方便使用。注意只选择与当前业务有关的事实,下单过程中不应该有支付信息

2)分解不可加性事实为可加组件,如分解优惠比率为优惠金额和原价

3)设计事实表之前先设计好粒度,粒度越细可支持的需求就越多。一个事实表中事实不能有多种粒度

4)需要对null进行处理,因为sql过滤条件对null不生效

5)适当的使用退化维度,减少下游关联操作次数


事实表设计步骤

确定业务过程 --> 确定粒度 --> 确定维度 --> 确定事实

你可能感兴趣的:(第九章 事实表设计之事实表基础)