维度数据模型
维度数据模型,Dimensional modeling,简称 维度模型,DM,用于数据仓库设计
是数据仓库领域大师 Ralph Kimball 所倡导的。维度建模以 分析决策的需求出发 构建模型,构建的数据模型为分析需求服务,因此它重点解决 用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能,更直接面向业务。
事实 和 维度 是两个维度模型中的核心概念:
- 事实表示对业务数据的度量。事实通常是 数字类型 的,可以进行 聚合 和 计算
- 维度是观察数据的角度。维度通常是一组层次关系或描述信息,用来定义事实
如:学生信息,年龄、分数 是事实,而 性别、年级、学科 等都是年龄、分数的 事实的维度。
建模方法(步骤)
- 选择业务过程
- 明确粒度,分析到哪种细粒程度
- 明确维度,有哪些维度
- 明确事实,要分析哪些指标
选择业务过程
确认哪些业务处理流程是数据仓库应该覆盖的,是维度方法的基础。
例如,需要了解和分析一个零售店的销售情况,那么与该零售店销售相关的所有业务流程都是需要关注的。
明确粒度
粒度:数据细化到什么程度,是细化到每个小时,还是每一天,还是每个星期,每个月
用于确定 维度 和 事实,因为维度或事实必须与定义的粒度保持一致
明确维度
维度的粒度必须和粒度一致。维度表是事实表的基础,也说明了事实表的数据是从哪里采集来的。
典型的维度都是名词,如日期、商店、库存等。
维度表存储了某一维度的所有相关数据,例如,日期维度应该包括年、季度、月、周、日等数据。
明确事实
识别数字化的度量,构成事实表的记录。大部分事实表的度量都是数字类型的,可累加,可计算,如:成本、数量、金额等。
提示:与系统使用者密切相关的,因为使用者正是通过对事实表的访问获取数据仓库存储的数据。
特点
易理解
信息按业务种类或维度进行分组,这会提高信息的可读性,也方便了对于数据含义的解释。简化的模型也让系统以更为高效的方式访问数据库。
高性能
维度模型的目的是简化、加速查询,更倾向于非规范化,因为这样可以优化查询的性能。
可扩展
由于维度模型允许数据冗余,因此当向一个维度表或事实表中添加字段时,不会像关系模型那样产生巨大的影响,带来的结果就是更容易容纳不可预料的新增数据。
阿里的OneData的建模工作流
维度建模种类
维度建模分为 星型模型、雪花模型,详见:数据模型:星型模型(Star Schema)、雪花模型(Snowflake Schema)
维度表
详见:https://www.malaoshi.top/show_1IX3BbRckFAU.html
事实表的分类
分为:事务事实表,周期快照事实表,累计快照事实表
详见:https://www.malaoshi.top/show_1IX3BaJaeDcL.html
