1.数据仓库建模的目的?
访问性能:能够快速查询所需的数据,减少数据I/O
数据成本:减少不必要的数据冗余,实现计算结果数据复用,降低大数 据系统中的存储成本和计算成本
使用效率:改善用户应用体验,提高使用数据的效率
数据质量:改善数据统计口径的不一致性,减少数据计算错误 的可能性,提供高质量的、一致的数据访问平台
2.常见的数据建模方法
3.常见四种建模方法的建模步骤与演示
3.1.范式建模(E-R模型)
将事物抽象为“实体”、“属性”、“关系”来表示数 据关联和事物描述;实体:Entity,关系:Relationship,这种对数据的抽象 建模通常被称为ER实体关系模型
ER模型是数据库设计的理论基础,当前几乎所有的OLTP系统 设计都采用ER模型建模的方式,且该建模方法需要满足3NF。Bill Inom提出的数仓理论,推荐采用ER关系模型进行建模,BI架构提出分层架构,数仓底层ods、dwd也多采用ER关系模型就行设计。
但是 逐渐随着企业数据的高增长,复杂化,数仓全部使用ER模型建模 显得越来越不合时宜。为什么呢,因为其按部就班的步骤,三范式等,不适合现代化复杂,多变的业务组织。
E-R模型建模的步骤(满足3NF)如下:
抽象出主体 (教师,课程)
梳理主体之间的关系 (一个老师可以教多门课,一门课可以被多个老师教)
梳理主体的属性 (教师:教师名称,性别,学历等)
画出E-R关系图
3.2.维度建模
3.2.1.事实表
事务事实表,用于承载事务数据,通常粒度比较低,它是面向事务的,其粒度是每一行对应一个事务,它是最细粒度的事实表,例如产品交易事务事实、ATM交易事务事实。
周期快照事实表,按照一定的时间周期间隔(每天,每月)来捕捉业务活动的执行情况,一旦装入事实表就不会再去更新,它是事务事实表的补充。用来记录有规律的、固定时间间隔的业务累计数据,通常粒度比较高,例如账户月平均余额事实表。
累积快照事实表,用来记录具有时间跨度的业务处理过程的整个过程的信息,每个生命周期一行,通常这类事实表比较少见。
3.2.2.维度表
维度,顾名思义,业务过程的发生或分析角度。比如从颜色、尺寸的角度来比较手机的外观,从cpu、内存等较比比较手机性能维。维度表一般为单一主键,在ER模型中,实体为客观存在的事物,会带有自己的 描述性属性,属性一般为文本性、描述性的,这些描述被称为维度。
比如商品,单一主键:商品ID,属性包括产地、颜色、材质、尺寸、单价等, 但并非属性一定是文本,比如单价、尺寸,均为数值型描述性的,日常主要的维度抽象包括:时间维度表、地理区域维度表等
案例:某电商平台,经常需要对订单进行分析,以某宝的购物订单为例,以维度建 模的方式设计该模型
涉及到事实表为订单表、订单明细表,维度包括商品维度、用户维度、商家维度、区域维 度、时间维度
商品维度:商品ID、商品名称、商品种类、单价、产地等
用户维度:用户ID、姓名、性别、年龄、常住地、职业、学历等
时间维度:日期ID、日期、周几、上/中/下旬、是否周末、是否假期等
3.2.3.维度建模模型的分类
维度建模按数据组织类型划分可分为星型模型、雪花模型、星座模型。
(1) 星型模型
尖叫提示:所以由上可以看出
星型模型和雪花模型主要区别就是对维度表的拆分
对于雪花模型,维度表的涉及更加规范,一般符合3NF,有效降低数据冗余,维度表之间不会相互关联,但是
而星型模型,一般采用降维的操作,反规范化,不符合3NF,利用冗余来避免模型过于复杂,提高易用性和分析效率,效率相对较高。
3.2.4. 维度建模步骤
3.3 DataVault模型
中心表-Hub :唯一业务键的列表,唯一标识企业实际业务,企业的业务主体集合
链接表-Link: 表示中心表之间的关系,通过链接表串联整个企业的业务关联关系
卫星表- Satellite: 历史的描述性数据,数据仓库中数据的真正载体
3.3.1 中心表-Hub
3.3.2 链接表-Link
3.3.3 卫星表- Satellite
3.3.4 Data Vault模型建模流程
梳理所有主要实体
将有入边的实体定义为中心表
将没有入边切仅有一个出边的表定义为中心表
源苦衷没有入边且有两条或以上出边的表定义为连接表
将外键关系定义为链接表
尖叫提示:Hub想像成人体的骨架,那么Link就是连接骨架的韧带组织, 而satelite就是骨架上的血肉。 Data Vault是对ER模型更近一步的规范化,由于对数据的拆解和更偏向于基础数据组织,在处理分析类场景时相对复杂, 适合数仓低层构建,目前实际应用场景较少
3.4Anchor模型
Anchor是对Data Vault模型做了更近一步的规范会处理,初衷是为了 设计高度可扩展的模型,核心思想是所有的扩张只添加而不修改,于 是设计出的模型基本变成了k-v结构的模型,模型范式达到了6NF
由于过度规范化,使用中牵涉到太多的join操作,目前木有实际案例,仅作了解
4.四种模型总结
以上为四种基本的建模方法,当前主流建模方法为: ER模型、维度模型
ER模型常用于OLTP数据库建模,应用到构建数仓时更偏重数据整合, 站在企业整体考虑,将各个系统的数据按相似性一致性、合并处理,为 数据分析、决策服务,但并不便于直接用来支持分析。缺陷:需要全面梳理企业所有的业务和数据流,周期长,人员要求高。
维度建模是面向分析场景而生,针对分析场景构建数仓模型;重点关注快 速、灵活的解决分析需求,同时能够提供大规模数据的快速响应性能。针对性 强,主要应用于数据仓库构建和OLAP引擎低层数据模型。优点:不需要完整的梳理企业业务流程和数据,实施周期根据主题边界而定,容易快速实现demo
数仓模型的选择是灵活的,不局限于某一种模型方法
数仓模型的设计也是灵活的,以实际需求场景为导向
模型设计要兼顾灵活性、可扩展,而对终端用户透明性
模型设计要考虑技术可靠性和实现成本
5.常用建模工具
作者:涤生手记
链接:https://hero78.blog.csdn.net/article/details/105506364
来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。