首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
wozaizhaooffer
蚌埠坦克学院 大数据开发工程师
关注
已关注
取消关注
@JanLEE:
Inmon 范式建模与 Kimball 维度建模
一、两种建模思想 对于 Inmon 和 Kimball 两种建模方式可以长篇大论叙述,但理论是很枯燥的,尤其是晦涩难懂的文字,大家读完估计也不会收获太多,所以笔者根据自己的理解用通俗的语言提炼出最核心的概念。 范式建模 范式建模是数仓之父 Inmon 所倡导的,“数据仓库”这个词就是这位大师所定义的,这种建模方式在范式理论上符合 3NF,这里的 3NF 与 OLTP 中的 3NF 还是有点区别的:关系数据库中的 3NF 是针对具体的业务流程的实体对象关系抽象,而数据仓库的 3NF 是站在企业角度面向主题的抽象。 Inmon 模型从流程上看是自上而下的,自上而下指的是数据的流向,“上”即数据的上游,“下”即数据的下游,即从分散异构的数据源 -> 数据仓库 -> 数据集市。以数据源头为导向,然后一步步探索获取尽量符合预期的数据,因为数据源往往是异构的,所以会更加强调数据的清洗工作,将数据抽取为实体-关系模型,并不强调事实表和维度表的概念。 维度建模 Kimball 模型从流程上看是自下而上的,即从数据集市-> 数据仓库 -> 分散异构的数据源。Kimball 是以最终任务为导向,将数据按照目标拆分出不同的表需求,数据会抽取为事实-维度模型,数据源经 ETL 转化为事实表和维度表导入数据集市,以星型模型或雪花模型等方式构建维度数据仓库,架构体系中,数据集市与数据仓库是紧密结合的,数据集市是数据仓库中一个逻辑上的主题域。 两种建模方式的理论概念就简单介绍到这,因为纯理论知识说再多,大家也可能有点迷惑,所以下面用一个具体的例子来实践两种建模方式。 二、两种建模实践 通过上一小节两种建模核心思想,相信大家对这两种建模方式已经有了大概的理解,接下来我们通过具体的例子,让大家有具体的感受。 以电商举例 大家都网购过,知道购买物品的流程,因此以电商购物为例,更易于大家的理解。 真实的电商购物的流程较复杂,此处表数量和表字段做简化处理。 1. 源表的结构及数据 对于我们大数据平台来说,源表指的电商系统中后台数据库中的表,这种表一般都是 OLTP 类型的表: ① 用户信息表: ② 城市信息表: ③ 用户等级表: ④ 用户订单表: 2. 使用 Inmon 模式建模 使用 Inmon 模式对以上源表数据进行建模,需要将数据抽取为实体-关系模式,根据源表的数据,我们将表拆分为:用户实体表,订单实体表,城市信息实体表,用户与城市信息关系表,用户与用户等级关系表等多个子模块: ① 用户实体表: (注:ETL 已过滤掉注销用户) ② 支付成功订单实体表: ③ 城市信息实体表: ④ 订单与用户关系表: ⑤ 用户与城市信息关系表: ⑥ 用户与用户等级关系表: 通过以上我们可以发现,范式建模就是将源表抽取为实体表,关系表,所以范式建模即是实体关系(ER)模型。数据没有冗余,符合三范式设计规范。 3. 使用 Kimball 模式建模 使用 Kimball 模式,需要将数据抽取为事实表和维度表,根据源表数据,我们将表拆分为:订单事实表,用户维度表,城市信息维度表,用户等级维度表。 可以看出,在 Kimball 的维度建模中,不需要单独维护数据关系表,因为关系已经冗余在事实表和维度表中。 ① 支付成功订单事实表: ② 用户维度表: ③ 城市信息维度表: ④ 用户等级维度表: 我们用图的方式将以上表之间的关系简单展示出来: 根据上图,我们发现什么,这不就是典型的雪花模式嘛,其特点就是维度表可以拥有其他维度表。 三、两种建模对比 两种建模方式特点 范式建模:通过上一小节的具体例子可以看出范式建模的优点:能够结合业务系统的数据模型,较方便的实现数据仓库的模型;同一份数据只存放在一个地方,没有数据冗余,保证了数据一致性;数据解耦,方便维护。但同时也带来了缺点:表的数量多;查询时关联表较多使得查询性能降低。 维度建模:模型结构简单,面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计,开发周期短,能够快速迭代。缺点就是数据会大量冗余,预处理阶段开销大,后期维护麻烦;还有一个问题就是不能保证数据口径一致性,原因后面有讲解。 我们再来理解下维度建模:数据会抽取为事实-维度模型,维度就是看待问题的角度,从不同的角度看待某个问题,就会得出不同的结论,而要得到这个结论,就需要事实表中的度量,何为度量,就是事实表中数值类型的字段。 例:某公司的各个商品在全国各地市的销售情况,维度就是全国的城市和各个商品,度量就是商品的单价,从不同的维度计算销售额:如查看北京市酸奶的销售额,上海市纯牛奶的销售额,这就是不同的维度组合方式。在限定的维度条件上,计算商品单价的总和,也就是 sum 度量值,即可得到我们想要的结果。 维度建模,就是依靠维度进行建模,但是如果维度设计的不合理,会不会带来问题呢? 如果我们把省份当做一个单独维度,城市当做一个维度,计算城市的人口数量。这时省份和城市都是单独的维度,它们之间没有了关系,就会出现以下情况: 广东省 杭州市 1500 浙江省 广州市 1200 这时会出现数据口径不一致,最后导致数据结果不准确。而范式建模就不会出现这个问题,因为在范式建模中强调的就是实体-关系模型,所以省份和城市之间一定存在归属关系的,不会出现省份和城市口径不一致的问题。 所以,范式建模能保证口径的一致性,而维度建模不能! 建模方式对比 通过上一节的具体的例子以及两种建模的特点,我们对比下两种建模方式的不同: 我们知道,互联网公司的业务一般是周期比较短需求变化快,并且迭代频繁,如果精心设计 Inmon 实体-关系的模式似乎并不能满足快速迭代的业务需要。所以,互联网公司更多场景下趋向于使用 Kimball 维度-事实的设计反而可以更快地完成任务。 四、两种建模混合场景 通过以上几个小节我们已经理解了范式建模与维度建模的思想以及它们之间的异同,优缺点。那么我们能不能将两种建模方式混合使用呢,让它们发挥各自最大的优势。接下来我们一起来看下。 范式建模必须符合准三范式设计规范,如果使用混合建模,则源表也需要符合范式建模的限制,即源数据须为操作型或事务型系统的数据。通过 ETL 抽取转换和加载到数据仓库的 ODS 层,ODS 层数据与源数据是保持一致的,所以 ODS 层数据也是符合范式设计规范的,通过 ODS 的数据,利用范式建模方法,建设原子数据的数据仓库 EDW,然后基于 EDW,利用维度建模方法建设数据集市。 结合两种建模方式的各自规范,混合建模按照“松耦合、层次化”的基本架构原则进行实施。混合数据仓库架构方法主要包含以下关键步骤:业务需求分步构建、分层次保存数据、整合原子级的数据标准、维护一致性维度等。 最后 建模方式没有好与坏之分,只有合适与不合适之分,在实际数仓建设中,需要灵活多变,不能全依赖建模理论,也不能不依赖。适时变通,才能建设一个好的数据仓库。
点赞 5
评论 2
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-30 18:34
已编辑
门头沟学院 Java
27后端,一天连续oc两家厂
终于约到面试。这是蜀黍的第一次和第二次面试,都是在今天。本来今天只有下午钛动科技面试,但是美的上午突然来约面,就面了,很简单,直接过。下午,面钛动,深入讲了一下开源和项目,面试官说非常满意。不到半个小时,hr打电话来问其他offer,沟通了几下。过了二十多分钟,打电话来直接oc口头五点,美的hr发消息,说oc了,希望我挑个时间办理入职(因为之前说非常想加入美的)我说姐姐您来慢了,我已经去了其他公司(钛动业务相对不错,而且工资也比美的高)在微信疯狂道歉...(我是渣男,对不起😵)(hr很伤心)timeline:只有今天,面完直接oc两家厂
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
昨天 18:33
腾讯提前批被问,后续能否去实习什么意思?
啊 这不是正式offer吗,怎么还要实习 不敢直接拒绝,怕没机会,有了解的uu吗
投递腾讯等公司10个岗位
点赞
评论
收藏
分享
06-19 22:53
江西应用科技学院 Java
求实习
大三找实习已老实,boss全是未读+已读不回,来个好心人把我捞走吧
积极的小学生不要香菜:
你才沟通多少,没500不要说难
点赞
评论
收藏
分享
06-08 22:25
门头沟学院 Java
有谁遇到这情况?
跟人机一样的hr
从零开始的转码生活:
这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞
评论
收藏
分享
07-30 10:46
门头沟学院 客户端其它
面试劫匪??????
秋招的时候,投简历,投过一家游戏公司,Hr面环节,那老哥问我:“如果你是一个抢劫银行的团伙的头目,现在你做一个抢劫计划,说说你会怎么准备以及流程是什么”,
不想上班的芝士很想居...:
把gta5抢劫太平洋银行的前置准备工作说给他
你遇到最难的面试题目是_
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
都是 dirty work,为什么别人的简历上就能言之有物🤔
2.1W
2
...
虾皮秋招一面
4397
3
...
虾皮后端一面(已挂)
4370
4
...
百度提前批,三面被推迟一周,喜提秋招第一凉
3758
5
...
7.30滴滴提前批一面凉经
3478
6
...
百度提前批 三面
3329
7
...
干活最少的实习生因为长得漂亮转正了
3075
8
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
2923
9
...
7.30百度提前批一面
2580
10
...
QQ提前批一面凉经
2573
创作者周榜
更多
正在热议
更多
#
你遇到最难的面试题目是_
#
15321次浏览
193人参与
#
反问环节如何提问
#
95575次浏览
1951人参与
#
中兴秋招
#
203908次浏览
2282人参与
#
简历上的经历如何包装
#
24644次浏览
730人参与
#
如何看待offer收割机的行为
#
815670次浏览
6088人参与
#
你最讨厌面试问你什么?
#
25339次浏览
284人参与
#
秋招最大的收获是什么?
#
38649次浏览
323人参与
#
我的实习收获
#
90941次浏览
1039人参与
#
26届的你,投了哪些公司?
#
37451次浏览
429人参与
#
滴滴求职进展汇总
#
233384次浏览
2116人参与
#
作业帮求职进展汇总
#
57037次浏览
376人参与
#
初创公司值得加入吗?
#
27353次浏览
194人参与
#
我对___祛魅了
#
43723次浏览
410人参与
#
数字马力求职进展汇总
#
184476次浏览
1500人参与
#
你跟室友的关系怎么样?
#
6159次浏览
94人参与
#
什么样的背景能拿SSP?
#
31797次浏览
204人参与
#
工作中哪个瞬间让你想离职
#
60825次浏览
547人参与
#
和同事相处最忌讳的是__
#
21359次浏览
217人参与
#
去年你投递实习了吗?
#
22894次浏览
331人参与
#
如何快速融入团队?
#
15019次浏览
182人参与
#
机械人的金三校招总结
#
36275次浏览
461人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务