文章重点:说明维度建模的过程
1、准备工作
维度建模之前,深刻理解所在行业业务过程至关重要,建模所需一切数据来源于业务相关基础数据;
理解业务过程需要和业务代表开需求交流会,了解需求端关键性能指标、竞争性商业问题、支持分析决策的事实等,维度建模应该由那些懂业务的人来完成;
小结:开发之前,需要结合业务流程,细化每个需求。
2、维度设计过程
-
选择业务过程
-
声明粒度
-
确认维度
-
确认事实
维度建模对应实体关系
2.1 业务过程
业务系统中,可能包含很多业务线,选择那些你需要的业务过程,如理赔业务,创建对应的事实表,基本一个业务对应一张事实表,每个业务过程对应表的一行数据,比如理赔业务事实表,一行数据就代表某个保单产生的理赔结果;
业务过程的选择很重要,业务过程直接和你设计的目标相关,及其对粒度、维度、事实的定义;
2.2粒度
声明粒度用于确定事实表中一行代表什么,在选择维度或事实之前,必须声明粒度,维度和事实必须和粒度保持一致;
原子粒度是最低级别的粒度,强力建议选择最细的原子粒度,因为原子粒度能够承受无法预期的用户查询。
上卷汇总粒度对性能调整来说很重要,在一个业务过程中你往往无法猜测上卷到某个维度才是公共的问题;
在一个事实表中不要混用多种不同的粒度
上面的表述可能有些拗口
简单理解:事实表如果选择最细粒度,可以支持不同的业务汇总查询,如果不是最细粒度,当需要更细粒度查询,就无能为力了;
比如拿理赔业务来说,如果你最细粒度到人,可以通过人上卷到某个机构查询理赔情况(人属于某个机构);如果选择机构级别作为最细粒度,你无法查询某个人的理赔情况(数据已经汇总)。
2.3描述环境的维度
主要围绕某个业务过程涉及的谁、什么、何处、何时、为什么 等背景展开
事实表和维度表关联时要保证唯一性
2.4用于度量的事实
定义:这里的事实就是度量某个业务过程的指标,基本都是数值表示。
比如:理赔业务中,事实就是理赔金额;
3、小结
本节主要说明维度建模的过程,该模型方便扩展维度;
通过建立外键列,可以添加新的维度到事实表,可以在维度表添加新的属性等;