一篇文章讲清楚数据仓库模型设计!

简介: 笔记

(1)为什么需要数据建模


数据建模就是数据组织和存储的方式,它强调从业务、数据存取和使用角度合理存储数据。

90.png

如上图所示,我们通过数据和程序对比来比较我们为什么需要数据建模:


比如在我们平常写程序,在写程序之前要做程序设计,那么为什么需要程序设计,核心的原因有以下三点:


出于性能的考虑

扩展性

易维护

那么为什么需要数据模型设计,核心的原因有以下几点:

91.png



(2)最实用的建模方法论


92.png


建模方法:


ER模型

维度模型(企业最流行的建模方法)

Data Vault模型

Anchor模型

维度模型从分析决策的需求出发构建模型,为分析需求服务,因此它重点关注用户如何更快完成需

求分析,同时具有较好的大规模复杂查询的响应性能。其典型的代表是星形模型。


维度模型是一种趋向与支持最终用户对数据仓库进行查询的设计技术,是围绕性能和易理解性构建

的。尽管关系模型对于事务处理系统表现非常出色,但他并不是面向最终用户的。


事实和维度是两个维度模型中的核心概念。事实表示对业务数据的度量,而维度是观察数据的角度。

事实通常是数字类型的,可以进行聚合和计算,而维度通常是一组层次关系或者描述信息,用来定

义事实。


如下图所示:

93.png


产品名称、购买顾客、商家名称、销售时间:属于销售事实的维度

销售金额:属于一个事实


维度建模的工作流程:

94.png


(3)维度建模的构建方式


95.png


(3.1)星型模型

星型模式的数据仓库:

96.png

如上图所示,星型模型就是中心开发,以事实为中心,周围都是维度表。

这是一个销售的数据仓库,中间的是销售表(时间、商家、产品、销售金额)。

其他三个是维度表:时间维度表、商家维度表、产品维度表


星型模式的优点与缺点:

97.png


(3.2)雪花模型

98.png

从数据仓库结构设计上来说,雪花模型比星型模型变得复杂。雪花模型还是以事实表为中心,周围全部都是维度,只不过是在雪花的模式下将维度进行拆分,例如时间维度,它的下面又拆分成三个,一个季节的、一个月的、一个是周某一天的。


雪花模型在维度层面比较细化,在数据的灵活性上相对较好,但是在数据分析复杂度上要付出代价。


雪花模型的优点与缺点:

99.png


(4)企业项目中数仓的实施流程


100.png


定义范围:101.png


确定需求:102.png


模型设计:

103.png

数据访问:

104.png


(5)维度模型设计的4个决策


105.png


(6)维度模型的规范化如何定义


规范定义指维度建模作为理论基础,构建总线矩阵,划分和定数据域、业务过程、维度、度量、原子指标、修饰类型、修饰词、同时周期、派生指标。


110.png

(7)维度模型的名词术语


数据域:

指面向业务分析,将业务过程或者维度进行抽象的集合。其中,业务过程可以概括为一个不可拆分的行为事件,在业务过程之下,可以定义指标;维度是指度量的环境,如买家下单事件,买家是维度。为保障整个体系的生命力,数据域是需要数据域抽象提炼,并且长期维护和更新的,但不轻易变动。在划分数据域时,既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中和扩展新的数据域。


业务过程:

指企业的业务活动事件,如下单、支付、退款都是业务过程。请注意,业务过程业务过程是一个不可拆分的行为事件,通俗地讲,业务过程就是企业活动中的事件


时间周期:

时间周期用来明确数据统计的时间范围或者时间点,如最近30天、自然周、截至当日等


修饰类型:

是对修饰词的一种抽象划分。修饰类型从属于某个业务域,如日志域的访问终端修饰类型类型涵盖无线端、PC端等修饰词


修饰词:

指除了统计维度以外指标的业务场景限定抽象。饰词隶属于一种修饰类型,如修饰词在日志域的访问终端类型下有修饰词PC端、无线端等


度量、原子指标:

原子指标和度量含义相同,基于某一业务事件行为下的度量,在业务下指标是不可拆分的,具有明确业务含义的名词,如支付金额


维度:

维度是度量的环境,用来反映业务的一类属性,这类属性的集合构成一个维度,维度也可以称为实体对象。维度属于一个数据域,如地理维度(其中包括国家、地区省以及城市等级别的内容)、时间维度(其中包括年、季、月、周、日等级别的内容)


维度属性:

维度属性隶属于一个维度,如地理维度里面的国家名称、国家D、省份名称等维度属性都属于维度属性


派生指标:

派生指标=—个原子指标+多个修饰词(可选)+时间周期。可以理解为对原子指标业务统计范围的圈定。如原子指标支付金额,最近1天海外买家支付金额则为派生指标最近1天为时间周期,海外为修饰词,买家作为维度,而不作为修饰词


相关文章
|
存储 数据采集 分布式计算
一篇文章搞懂数据仓库:四种常见数据模型(维度模型、范式模型等)
一篇文章搞懂数据仓库:四种常见数据模型(维度模型、范式模型等)
一篇文章搞懂数据仓库:四种常见数据模型(维度模型、范式模型等)
|
存储 SQL 大数据
一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
|
3月前
|
数据挖掘 数据库
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
115 0
|
8月前
|
存储 数据采集 关系型数据库
数据仓库模型全景
数据仓库模型全景
|
10月前
|
大数据 数据管理 数据库
数据仓库(3)数仓建模之星型模型与维度建模
维度建模是一种将数据结构化的逻辑设计方法,也是一种广泛应用的数仓建模方式,它将客观世界划分为度量和上下文。度量是常常是以数值形式出现,事实周围有上下文包围着,这种上下文被直观地分成独立的逻辑块,称之为维度。它与实体-关系建模有很大的区别,实体-关系建模是面向应用,遵循第三范式,以消除数据冗余为目标的设计技术。维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。
389 1
|
10月前
|
存储 SQL 数据采集
数据仓库设计模型
数据仓库设计模型
116 0
|
存储 canal 消息中间件
数据仓库系列(三)数仓分层的意义价值及如何设计数据分层
数据仓库系列(三)数仓分层的意义价值及如何设计数据分层
1299 0
数据仓库系列(三)数仓分层的意义价值及如何设计数据分层
|
数据采集 监控 Android开发
网站流量日志分析--数仓设计--本项目中数据仓库的设计(星型模型)|学习笔记
快速学习网站流量日志分析--数仓设计--本项目中数据仓库的设计(星型模型)
358 0
网站流量日志分析--数仓设计--本项目中数据仓库的设计(星型模型)|学习笔记
|
存储 大数据 BI
聊聊数据仓库中维度表设计的二三事
聊聊数据仓库中维度表设计的二三事
732 0
聊聊数据仓库中维度表设计的二三事