首页 > 其他分享 >数据仓库建模

数据仓库建模

时间:2023-02-14 11:15:17浏览次数:39  
标签:数仓 模型 数据仓库 建模 星型 维度 数据

一、建模方法论

数仓的建模或者分层,其实都是为了更好的去组织、管理、维护数据,所以当你在更高的维度去看的话,所有的划分都是为了更好的管理。

1.访问性能

  能够快速查询所需的数据,减少数据I/O。

2.数据成本

  减少不必要的数据冗余,实现计算结果数据复用,降低大数据系统中的存储成本和计算成本。

3.使用效率

  改善用户应用体验,提高使用数据的效率。

4.数据质量

  改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量的,一致的访问平台。

 

 

二、数仓建模

1.维度建模

  维度建模是数仓领域另一位大师ralph kimball所倡导,是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快完成分析需求,同时还有较好的大规模复杂查询的响应性能。维度建模是专门用于分析型数据库,数据仓库、数据集市建模的方法。

 

  维度建模的主要构成是维度表和事实表。每一张维度表对应现实世界中的一个对象或者一个主题,例如:客户、产品、时间、地区等,通常是包含了多个属性的列,通常数据量不会太大;事实表则是描述业务的多条记录,包含了描述业务的度量值以及和维度表相关联的外键,外键和维度表通常是多对多的关系,数据量大而且经常发生变化。

 

  维度分为:

  ① 退化维度(DegenerateDimension)

     在维度类型中,有一种重要的维度称作为退化维度,亦维度退化一说。这种维度指的是直接把一些简单的维度放在事实表中。退化维度是维度建模领域中的一个非常重要的概念,它对理解维度建模有着非常重要的作用,退化维度一般在分析中可以用来做分组使用。

  ② 缓慢变化维(Slowly Changing Dimensions)

     维度的属性并不是始终不变的,它会随着时间的流逝发生缓慢的变化,这种随时间发生变化的维度我们一般称之为缓慢变化维(SCD)。比如员工表中的部门维度,员工的所在部门有可能两年后调整一次。

 

  维度建模一般包含三个,一般是根据业务需求和业务复杂性加以区分,有区分的方法但没有比较清晰地界限。

(1)星型模型

  星型模式(star schema)是面向主题的常用模式,主要由一个事实表和多个维度表构成,不存在二级维度表。

 

 (2)雪花模型

  雪花模型(snowflake schema)是在星型模型基础上将维表再次扩展,每个维表可以继续向外连接多个子维表

  雪花模型相当于将星型模型的大维表拆分成小维表,满足了规范化设计,因为很少会有事实表只关联一层维度的,往往维度还会细分,钻取。然而这种模式在实际应用中很少见,因为跨表查询时效率很慢,所以现在的做法是将部分维度表整合到事实表中,形成宽表,在查询汇总的时候只需要group by就可以了,不需要在进行join操作。

 

 (3)星座模型

  星座模型(fact constells schema)也是星型模型的扩展,存在多个事实表且可共用同一个维表。实际上数仓模型建设后期,大部分维度建模都是星座模型。

 

标签:数仓,模型,数据仓库,建模,星型,维度,数据
From: https://www.cnblogs.com/xiao-wang-tong-xue/p/17118922.html

相关文章