inmon和kimball数仓区别

引言

在数据仓库领域,有两本巨著如雷贯耳《数据仓库》和《数仓工具箱》,影响了进20年商业智能的数仓发展,这两本巨著分别出自“数据仓库”之父 Bill Inmon和数据仓库权威专家 Ralph Kimball,所采用的建模方法也分别为范式建模和维度建模。
虽然两本巨著都是经典,但是当我们去阅读时,想必是一脸懵逼的,同时问下自己:两套数仓建设体系的核心区别是什么?反正我是答不上来。为了梳理区别,本人重新翻阅了这两本书,以及网上一些相关资料,尝试以自己的理解来回答。

inmon和kimball的区别

架构区别

Kimball 建模的流程为:从需求到模型,从模型到数据。从上到下的一个过程,也叫数据集市总线架构( Data Mart Bus Architecture )或者数据仓库总线架构 (DataWarehouse Bus Architecture)。
alt text

在大型BI项目中,数仓通常也会采用Inmon 的建模方式,从数据到模型再到需求,这样的自下往上的建设路线。也有叫集线器架构 (Huband Spoke) 或者企业信息工程架构 (CIF:CorporateInformation Factory)。

两者的架构区别如数仓建模——Inmon与Kimball的融合建模方法论一文中下图所示:
alt text

模型区别

inmon ER模型

在Inmon的ER模型中,将模型分为三个层次:高层模型(称为实体关系,或ERD),中间层建模(称为数据项集或DIS),底层建模(称为物理模型)。

高层模型以实体和关系为特征,实体处于最高抽象层,由集成范围这个术语表示的内容决定哪些实体术语模型范围而哪些不属于。我的理解,这些的高层模型的实体,就类似于主题域的划分,只不过多了关系。

中间模型为高层模型的主题扩展,简单来说,就是将高层模型中的实体和关系,进一步细化,即类似于使用具体的表的ER管理来表示高层模型中的单一主题。

中层模型中使用主要数据分组,二级数据分组,连接器,数据的“类型”来表示模型。

物理模型就是物理表,重中间层数据模型创建而来,通过扩展中间模型,使得模型中包含有关键字和物理特性,主要是从性能优化系数等角度,如数据粒度、分区,饭规范化冗余、访问数据频率(热点数据)分离等。

至此,Inmon的建模方法就介绍完毕了,所谓的ER,其实值的是在高层的主题域模型和中层的ER模型时对于关系抽象的方式,采用ER进行思考,其实在最终的物理层面,ER模型展现出来的效果和雪花是类似的,而且inmon的模型也是包含反规范化操作的,所以在个别场景下最终呈现也会和星型模型类似。

kimball维度模型

说完了inmon的模型,再来说下kimball的维度建模,在kimball模型中,针对模型的讲解是分散的,个人认为,kimball的模型即以维度表和事实表为抽象,一致性维度设计和使用为核心,以星型模型为具体实现,通过收集业务需求,设计总线矩阵来确保一致性维度,最后通过选择业务过程、申明粒度、确认维度、确认事实来进行模型的创建。

总结

inmonER建模和kimball的维度建模,从最终的模型表上看,两者是差不多的,这也是为什么从网上搜索,虽然区别说了一大堆,但是在举例的时候,看着都差不多没有区别,一定要说区别的话,可能就是强行让ER建模不进行维度退化饭规范化操作。

两者区别主要是理念和过程的不同,就像从需求到达终点,两位大师做了两种不同的交通工具和路线,但是结果是类似的,最终殊途同归。

首先,inmon的ER建模是从数据到需求,即你需要先行了解当前的业务系统有什么数据,是怎么使用,然后将数据通过主题域进行分类,最后将分类后的数据进行整合,形成数据仓库;而kimball的维度建模是从需求到数据,即你需要先了解当前的业务系统有什么需求,然后将需求进行分类,通过总线矩阵进行整合,形成数据仓库。

在现实中,你很难说你的数仓是纯粹的inmonER建模或kimball的维度建模,一般为两者模型的融合,即都使用了。在业务分析和模型设计时,采用的总线矩阵和事实维度;在模型关系表达和主题域划分时,则是展现了inmon的ER模型思想。

其他知识

数仓架构有几种?

哪种数据仓库架构最成功? Bill Inmon 或 Ralph Kimball ?一文中,提到了如下调查

2005年,Thilini Ariyachandra 与Hugh Watson针对DW架构做了一个深入的调查,调查题目为“哪种数据仓库最成功?”,受访者由454位曾在各种不同规模的企业(绝大多数是美国企业)中参与了DW规划与实施的人员组成,受访者根据DW应用实际情况及经验体会做出回答。
为了合理设计调查问卷,在调查问卷中合理设置调查对象(参与调查的DW架构)和评判标准(影响DW架构选择的因素及判断DW架构成功的因素等)等内容,Watson和Ariyachandra邀请了20位专家组成专家组设计调查问卷及判断标准等,这20位专家包括了DW领域的两位先驱——赫赫有名的Bill Inmon和Ralph Kimball。因此我们可以认为这份调查的结果是权威可信的。

在这份调查中,列举的5个数仓架构如下图所示:
alt text

  1. Independent data marts architecture
  2. data mart bus architecture with dimensional data marts
  3. hub and spoke architecture(corporate information factory)
  4. centralized data warehouse architecture
  5. federated architecture

结语

参考资料

  1. building-the-data-warehouse-in-microsoft-sql-server-2005
  2. The Data Warehouse Toolkit: The Definitive Guide to DSS 2005
  3. 深入对比数据仓库模式:Kimball vs Inmon
  4. 通俗易懂数仓建模—Inmon 范式建模与 Kimball 维度建模
  5. 数据仓库 Inmon与Kimball数仓理论对比
  6. 哪种数据仓库架构最成功? Bill Inmon 或 Ralph Kimball ?
  7. 数仓建模——Inmon与Kimball的融合建模方法论