matdem矩阵维度必须一致_数据仓库|当我们用【维度建模】的时候,我们在建什么?...

c11b9674b2d86c4f2e1d1c0311d5cc6d.png

--引言--

为什么要数据建模

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

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

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

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

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

它从业务数据存取和使用的角度合理地存放数据。

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

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

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

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

这种系统叫做OLTP系统。

与之相对的是OLAP系统,

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

更加关注数据的整合,

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

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

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

典型的数仓建模方法论,

ER模型维度模型

DataVault模型Anchor模型等。

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

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

这个理论由数仓领域的Ralph Kimball大师所倡导。

维度建模理论,

从分析决策的需求出发,

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

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

同时具有较好的

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

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

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

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

1.规范定义

在建设的最初期,

进行划分和定义

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

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

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

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

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

61871fa150443e99043465aa4aaa73d9.png

2.构建总线矩阵

有了上面的一些概念后,

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

构建总线矩阵的目的,

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

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

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

具体流程如下:

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

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

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

ab60ba041f717a702b76f4bcb5af5ff9.png

3.模型设计

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

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

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

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

4.模型评审和再设计

本阶段主要召集相关人员

进行模型的审查和验证,

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

5.模型实施

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

提交etl开发人员,

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

文末,也要特别感谢一下@lili、@Alex Shen、@HGJ几位大佬在数仓建模领域对我的启发和指导,感谢~


ps:其实文中还有一些细节,在此处没有完全讲清楚,比如维度表的设计、事实表的设计等,这些内容我会在工作中不断实践总结后归纳出来,并在后期的文章中持续补充,也欢迎大家对文章内容进行交流和指正。另外我也有这样一种观点:维度建模不仅仅是数仓领域的一种理论,同时也能够是我们思考问题的一种方法论工具,即基于更加全局的视野,从不同的维度,钻取不同的粒度,辩证地分析问题。

你可能感兴趣的往期文章:

当我们谈【数据仓库】的时候,我们在谈什么?

当我们用【MaxCompute】的时候,我们在用什么?


a14fc89777d7207ab060be7cb491f494.png


又肝了一篇

要是觉得有帮助

记得收藏分享呀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值