inmon|三范式建模和维度建模,到底该选哪一个?( 二 )


事实表的建设:经常也被成为度量,事实是可以体现业务流程中真实表现的数据。例如:对于销售业务流程,最核心的体现是季度销售金额;对于招聘流程,最核心的体现是招聘人数;对于技术团队,最核心的体现是开发了多少功能。
维度表的建设:维度是经常被大家说道的一个词,其实维度更多的是一个视角,是从不同的角度去观察和分析事实的一个方法。谁在那干啥?例如:以销售流程为例,需要分析的维度有:谁买了商品——客户名称,在哪买了商品——售卖地点,买了啥商品——商品名称 。
三、两个模型的多视角对比inmon|三范式建模和维度建模,到底该选哪一个?
文章插图
四、两个模型的适用范围每种方法都有各自的特点,并且会适用于不同的环境中。具体选择哪种数据仓库设计方法取决于组织的业务目标、业务特性、时间、成本、不同组织单元之间的相互依赖级别。
Inmon 三范式建模的方法适合长期稳定的业务,所谓“长期稳定”是指:
“时间方面,业务整体的数据建设可以经得起长时间的打磨;成本方面,由于inmon建模需要专家团队的支持,所以需要能接受较多的支出。”
Kimball维度建模的方法更加适合快速激进的业务,所谓“快速基金”是指:
“时间方面,业务处于快速扩张要快速看到效果;成本方面,没有较多较为专业的团队来支持相关建设。”
我们可以拿两个例子来解释说明一下。

  • 营销:这是一个专业领域,我们不需要为了分析的目的考虑营销的每个方面。因此,我们不需要企业仓库——几个数据集市就足够了——也就是 Kimball 方法。
  • 保险:为了根据未来的预测管理风险,我们需要对所有投保人形成一个广泛的图景,由一系列数据组成,如盈利能力、历史、人口统计等。所有这些方面都是相互关联的,因此 Inmon 方法从仓库中的所有数据开始,并根据需要对其进行过滤是两者中最合适的。
  • 市场:这是一个小的分支,并且业务场景较为简单,无需进行企业级数仓建设,只需要数据集市就够了。因此,Kimball的方法比较适合。
  • 银行:银行类的业务对于银行产品和客户信息都是非常关注,尤其是两者的交叉分析,哪些人买了啥银行产品。这些数据会有相关的限制,例如:产品和客户的信息不可给市场和财务部门公开,部门与部门之间的数据会有限制,这种情况下只能采用Kimball的方法;如果银行中的整个流程和部门相互关联,这种情况下使用Inmon会更好一些
  • 制造业:会涉及到多个组织单元,且预算比较充裕。这种情况没有系统依赖,因而需要企业模型,这时还是Inmon的方法比较理想。
在设计数据仓库时,首先要先看看业务目标——短期目标和长期目标。看看功能之间哪里有联系,什么是独立的。分析数据源的数量和质量。最后,评估你的资源级别、时间和经费。这能帮助你判断用Inmon方法还是用Kimball方法,或者是两种方法的组合。
本文由 @数据产品高远 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于CC0协议