DW,Bl以及维度建模初步
部分借鉴与(此原文:https://blog.csdn.net/mcajax/article/details/104376168)
用于度量的事实表
发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。
例:比如一次购买行为我们就可以理解为是一个事实,订单表就是一个事实表,你可以理解他就是在现实中发生的一次操作型事件,我们每完成一个订单,就会在订单中增加一条记录。
我们可以回过头再看一下事实表的特征,在维度表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一条记录。
维度模型中的事实表存储组织机构业务过程事件的性能度量结果,表示某个业务度量。
事实表的每行对应一个度量事件,每一个度量事件与对应的事件表行具有一对一关系
单事件事实表
对于每一个业务动作事件,设计一个事实表,仅记录该事件的事实以及状态,以用户下单打车为例,订单流程包括用户下单、司机接单、乘客支付等过程
流程事实表
对于一个业务流程主体,设计一个事实表,跟踪整个流程的事实以及状态流转。
事实表的存储
(1)增量存储
每周期仅处理增量部分的数据,针对状态无变化的数据比较合适
(2)全量快照
状态有变化,但每天保存当前的快照数据,对于数据量在可控范围内的情况可以采用。如果存储空间和成本可接受,完整存储,确保能够追溯到历史每天数据状态,如果存储空间有限,考虑移动历史快照数据到冷盘,需要使用的时候可恢复,如果历史状态数据无太大价值,可以考虑部分删除,比如仅保留每月最后一天的快照数据
(3)拉链表
针对数据量大,但缓慢变化,需要跟踪历史状态,和缓慢渐变维类似,拉链表适用于每天变化的数据量较小的场景,否则如果每天的变化数据量大于新增量,可优先选择快照
用于描述环境的维度表
维度表包含与业务过程度量事件有关的文本环境
维度提供数据的入口,提供所有DW/BI分析的最终标识和分组
每个维度表都包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。 维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。
kimball 维度建模技术
4步骤维度设计过程
-
选择业务
-
声名粒度
-
确认维度
-
确认事实