订阅更新

Kimball vs Inmon

数仓建模手册 第 11 题 约 3 分钟读完

本文目录
  1. 先说结论
  2. 核心区别
  3. 实际项目中的混合方案
  4. 总结

先说结论

国内互联网公司90%以上用的是Kimball(维度建模),或者更准确地说,是Kimball的变体。Inmon在传统企业(银行、电信、制造业)还有不少应用,但在互联网和大数据领域,Kimball是绝对主流。面试的时候不要只背区别,要能说出为什么你们选了这个方案。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

高阶 | 大数据面试 · 数仓建模系列

面试真题
Kimball和Inmon的建模方法论有什么区别?你们公司用的是哪种?为什么?

核心区别

对比项KimballInmon
思路自下而上:先建数据集市再整合自上而下:先设计企业级模型
核心产出事实表+维度表(星型模型)3NF范式化表
建设周期快,2-4周出第一个主题慢,需完整设计后才能用
灵活性高,加新维度就行低,改动牵一发动全身
查询性能好,JOIN少差,JOIN多
适合团队小团队、快速迭代大团队、长期规划
典型用户互联网公司银行、电信、政府

实际项目中的混合方案

纯粹的Kimball或Inmon在实际项目中很少见。大部分公司用的是混合方案:ODS层同步不变;DWD层偏Inmon,做规范化清洗;DWS/ADS层偏Kimball,星型模型+宽表。这种「底层规范化、上层维度化」的折中方案最为普遍。

Wood的实战经验
我的4段工作经历全部用Kimball方法论。小公司没条件花3个月做完整企业级设计,先跑起来边跑边优化就是Kimball精髓。
不过我在出海硬件品牌时DWD层做了严格规范化(用户、设备、事件各自独立),DWS层则完全按Kimball建星型模型和宽表。底层规范、上层灵活。
面试加分提示
「我们主要用Kimball,因为团队小、4E1A务迭代快、查询引擎适合星型模型。但DWD层借鉴了Inmon思想做了规范化,可以说是混合方案。」
先表明主方案+理由,再说借鉴的部分,显示全面性。

总结

记忆点内容
Kimball自下而上,维度建模,快,互联网主流
Inmon自上而下,范式建模,稳,传统企业多
实际方案大多数混合:底层偏Inmon,上层偏Kimball
选型依据团队规模+业务迭代速度+查询引擎特性
刷题进度保存在当前浏览器