「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」。
上一篇已经介绍了维度建模的4项步骤,分别是选择业务过程、确定事实、声明粒度、确定维度,每一个步骤都介绍的非常详细,大家可以往上翻一篇看看。
可以看到的“事实”和“维度”是维度建模中的两个核心概念,接下来就更细节更深入的介绍事实表和维度表技术。
首先是事实表技术基础。
1、事实表的结构,所有发生在现实世界中的物理活动都对应到事实表中的一行数据,且这样的数据都是最细粒度级别的,事实表的每一行多是用来对应每一个度量事件。还有一个关键的是事实表中的外键,用以关联维度表,也包含可选的退化维度键和日期时间戳。
2、可加、半可加、不可加事实
事实表怎么还分这么多种?这是按照数字度量的,首先完全可加性的事实,是最灵活、最有用的,字面意思就是这些事实的维度均可以完全相加,也就是按照与事实表关联的任意维度,业务关心的组织结构汇总。那么半可加就是可以将某些维度进行相加,不能对所有维度相加。像是余额事实表中就是不能根据时间维度相加,其他维度都可以。还有完全不能相加的事实,比如汇率。不可加事实最好是存储完全可加的度量,并在最终计算前先汇总这个度量到结果集合中。
3、事实表可以存在空值度量,我们的所有聚集函数(SUM、COUNT、MIN、MAX、AVG)都是可以对空值事实进行计算的。在事实表的外键中不能存在空值。
4、一致性事实,这是很重要的一点,就是在不同表中的同一个维度,一定要有相同的技术定义,对业务的含义是一样的。如果是不同含义,也应该是有不同的命名方式,并需要明确告知给业务。