《维度模型系列》-1初识维度模型
更多技术文章请关注公众号:
前言
数据模型就是数据的组织和存储方法,它强调从业务,数据存取,和使用角度合理的存储数据。
模型设计是数据仓库的必备技能和主要工作之一。模型设计的好坏直接影响数仓整体的性能,存储成本,使用效率,数据质量等等。
数仓典型的模型方法论有以下几种:ER模型,维度模型,Data Vault模型,Anchor模型,目前互联网行业应用最广泛的应属于维度模型。
本系列文章对维度模型理论做完整的介绍,通过实例让大家对维度建模有更加深入的理解。本人经验有限,文章中有理解错误或不同观点,欢迎指正。
什么是维度建模
维度建模是一种将数据结构化的逻辑设计方法。首先介绍两个最重要的概念:事实,维度。
维度建模将业务过程分为度量和上下文。度量是由业务过程和支持它们的业务源系统获取的,常常以数值形式体现,我们称它们为“事实”。
事实由大量的文本形式的上下文包围着,这些文本形式的上下文是伴随着事实产生而确定的。这些上下文被直观的分割成多个独立的模块我们将其称作“维”。维度描述了事实的相关信息,比如who,what,when,where,why等等。
举个栗子:
小明在淘宝上下单100元买了两箱牛奶,100元和2箱就是事实,而小明,牛奶,时间,配送地址等等这些信息就是维
如下图就是按照维度建模方式来组织的数据结构,看上去像个星状结构,也经常被称作星型模型。中间蓝色的就是事实表有若干维度键和度量值组成,黄色就是维度表,维度表由维度键和若干属性组成(如用户维度表可以包含姓名,性别,年龄,住址,学历等等信息)
维度建模的好处
- 易于理解使用
相对于业务系统的规范化(3NF)模型,维度建模更易于业务用户理解,因为相同类别的信息已经放到对应的维度表中,对于使用分析来说意义都很明确。业务分析人员很容易就能找出分析操作所需的信息
- 查询性能
维度建模的反规范化维度层次结构,减少了查询的关联操作,而关联查询是非常耗时的查询操作。
- 一致性
维度建模强调维度一致性和事实一致性,数据仓库总线架构要求所有事实共用一套维度表,这样保证了数据一致性
- 快速迭代
基于一致性维度的总线架构,其实施过程可以按照不同业务过程进行拆分,快速满足业务需求
未来内容
前面对维度建模进行了简单介绍,其中很多技术细节和专业数据没有展开细讲,只是让大家对维度建模有一个初步的认识。未来文章会对维度建模做更加详细的介绍,包括数据仓库总线架构概念,事实表和维度表技术细节的讨论,以及维度设计过程详解
更多技术文章请关注公众号: