数据仓库|当我们用【维度建模】的时候,我们在建什么?

本文介绍数据建模的重要性及两种主要系统:OLTP与OLAP。重点讲解维度建模理论,包括其核心思想、应用场景及构建数据仓库的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--引言--

为什么要数据建模

如果把数据看作图书馆里的书,

我们希望看到他们在书架上分门别类的放置;

如果把数据看作城市的建筑,

我们希望这个城市规划布局能够合理。

数据模型就是一种数据组织和存储方法,

从业务数据存取和使用的角度,

合理地加工存放数据。

 

传统的关系型数据库系统,

通常面向的数据操作是随机读写,

主要采用满足3NF的ER模型来存储数据,

从而在事务处理中解决数据的冗余和一致性问题,

这种系统叫做OLTP系统。

 

与之相对的是OLAP系统,

其通常面向的数据操作是批量读写,

更加关注数据的整合,

以及在复杂大数据查询和处理的性能,

因此需要采用一些不同的数据建模方法。

 

 

--建模理论之维度建模--

典型的数仓建模方法论,

ER模型维度模型

DataVault模型Anchor模型等。

其中在业内应用较为广泛,

且作者比较熟悉的就是维度模型,

这个理论由Ralph Kimball大师所倡导。

 

维度建模理论的核心,

从分析决策的需求出发,

主要是为了分析需求服务。

它重点关注如何快速的完成需求分析,

同时具有较好的

大规模、复杂查询的响应性能,

其典型的代表是星形模型,

以及在一些特殊场景下使用的雪花模型。

 

--从零开始构建数据仓库--

1.规范定义 

在建设的最初期,

需要进行划分和定义

业务板块、数据域、业务过程、

维度、度量/原子指标、修饰类型、

修饰词、时间周期、派生指标等。

只有约定规范好各处定义,

后面的模型设计才好继续展开。

2.构建总线矩阵

有了上面的一些概念后,

这一步便是最为关键且重要的步骤。

构建总线矩阵的目的,

是为了使我们可以十分灵活地,

根据业务排期来逐步开发迭代数仓,

这也是其在工程应用上的优势,

具体流程如下:

1)数据调研:了解业务,并收集数据分析师和运营人员的需求(主要是指标和维度)

2)划分数据域:将了解到的业务过程或维度进行抽象成数据域

3)梳理业务过程明确业务过程所属的数据域,以及与维度的关系

3.模型设计

基于前面得到的总线矩阵,

我们需要进行如下两类模型的设计:

1)明细模型设计:设计一致性维表DIM和一致性事实表DWD

2)汇总模型设计:设计公用汇总层DWS和应用汇总层ADS

 

 

4.模型评审和再设计

本阶段主要召集相关人员

进行模型的审查和验证,

根据审查结果对详细维度进行再设计。

 

5.模型实施

完成模型详细设计文档后,

提交etl开发人员,

进行后续的物理模型的设计和开发。

 

 

 


ps:其实文中还有一些细节,在此处没有完全讲清楚,比如维度表的设计、事实表的设计等,这些内容我会在工作中不断实践总结后归纳出来,并在后期的文章中持续补充,也欢迎大家对文章内容进行交流和指正。

另外我也有这样一种观点:维度建模不仅仅是数仓领域的一种理论,同时也能够是我们思考问题的一种方法论工具,即基于更加全局的视野,从不同的维度,钻取不同的粒度,辩证地分析问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值