(1)为什么需要数据建模
数据建模就是数据组织和存储的方式,它强调从业务、数据存取和使用角度合理存储数据。
如上图所示,我们通过数据和程序对比来比较我们为什么需要数据建模:
比如在我们平常写程序,在写程序之前要做程序设计,那么为什么需要程序设计,核心的原因有以下三点:
出于性能的考虑
扩展性
易维护
那么为什么需要数据模型设计,核心的原因有以下几点:
(2)最实用的建模方法论
建模方法:
ER模型
维度模型(企业最流行的建模方法)
Data Vault模型
Anchor模型
维度模型从分析决策的需求出发构建模型,为分析需求服务,因此它重点关注用户如何更快完成需
求分析,同时具有较好的大规模复杂查询的响应性能。其典型的代表是星形模型。
维度模型是一种趋向与支持最终用户对数据仓库进行查询的设计技术,是围绕性能和易理解性构建
的。尽管关系模型对于事务处理系统表现非常出色,但他并不是面向最终用户的。
事实和维度是两个维度模型中的核心概念。事实表示对业务数据的度量,而维度是观察数据的角度。
事实通常是数字类型的,可以进行聚合和计算,而维度通常是一组层次关系或者描述信息,用来定
义事实。
如下图所示:
产品名称、购买顾客、商家名称、销售时间:属于销售事实的维度
销售金额:属于一个事实
维度建模的工作流程:
(3)维度建模的构建方式
(3.1)星型模型
星型模式的数据仓库:
如上图所示,星型模型就是中心开发,以事实为中心,周围都是维度表。
这是一个销售的数据仓库,中间的是销售表(时间、商家、产品、销售金额)。
其他三个是维度表:时间维度表、商家维度表、产品维度表
星型模式的优点与缺点:
(3.2)雪花模型
从数据仓库结构设计上来说,雪花模型比星型模型变得复杂。雪花模型还是以事实表为中心,周围全部都是维度,只不过是在雪花的模式下将维度进行拆分,例如时间维度,它的下面又拆分成三个,一个季节的、一个月的、一个是周某一天的。
雪花模型在维度层面比较细化,在数据的灵活性上相对较好,但是在数据分析复杂度上要付出代价。
雪花模型的优点与缺点:
(4)企业项目中数仓的实施流程
定义范围:
确定需求:
模型设计:
数据访问:
(5)维度模型设计的4个决策
(6)维度模型的规范化如何定义
规范定义指维度建模作为理论基础,构建总线矩阵,划分和定数据域、业务过程、维度、度量、原子指标、修饰类型、修饰词、同时周期、派生指标。
(7)维度模型的名词术语
数据域:
指面向业务分析,将业务过程或者维度进行抽象的集合。其中,业务过程可以概括为一个不可拆分的行为事件,在业务过程之下,可以定义指标;维度是指度量的环境,如买家下单事件,买家是维度。为保障整个体系的生命力,数据域是需要数据域抽象提炼,并且长期维护和更新的,但不轻易变动。在划分数据域时,既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中和扩展新的数据域。
业务过程:
指企业的业务活动事件,如下单、支付、退款都是业务过程。请注意,业务过程业务过程是一个不可拆分的行为事件,通俗地讲,业务过程就是企业活动中的事件
时间周期:
时间周期用来明确数据统计的时间范围或者时间点,如最近30天、自然周、截至当日等
修饰类型:
是对修饰词的一种抽象划分。修饰类型从属于某个业务域,如日志域的访问终端修饰类型类型涵盖无线端、PC端等修饰词
修饰词:
指除了统计维度以外指标的业务场景限定抽象。饰词隶属于一种修饰类型,如修饰词在日志域的访问终端类型下有修饰词PC端、无线端等
度量、原子指标:
原子指标和度量含义相同,基于某一业务事件行为下的度量,在业务下指标是不可拆分的,具有明确业务含义的名词,如支付金额
维度:
维度是度量的环境,用来反映业务的一类属性,这类属性的集合构成一个维度,维度也可以称为实体对象。维度属于一个数据域,如地理维度(其中包括国家、地区省以及城市等级别的内容)、时间维度(其中包括年、季、月、周、日等级别的内容)
维度属性:
维度属性隶属于一个维度,如地理维度里面的国家名称、国家D、省份名称等维度属性都属于维度属性
派生指标:
派生指标=—个原子指标+多个修饰词(可选)+时间周期。可以理解为对原子指标业务统计范围的圈定。如原子指标支付金额,最近1天海外买家支付金额则为派生指标最近1天为时间周期,海外为修饰词,买家作为维度,而不作为修饰词