数据仓库模式之详解 Inmon 和 Kimball

目录

一、前言

二、企业信息工厂(Inmon)

[2.1 概念](#2.1 概念)

[2.2 主要组件](#2.2 主要组件)

[2.3 流程](#2.3 流程)

三、多维数据仓库(Kimball)

[3.1 概念](#3.1 概念)

[3.2 核心组件](#3.2 核心组件)

[3.3 流程](#3.3 流程)

四、异同及用途对比

[4.1 异同对比](#4.1 异同对比)

[4.2 特征比较](#4.2 特征比较)


一、前言

大部分关于数据仓库构建与讨论,都受到两位有影响力的思想领袖Bill Inmon和Ralph Kimball的影响,他们各有不同的数据仓库建模和实施方法。

  • Inmon把数据仓库定义为"面向主题的、整合的、随时间变化的、相对稳定的支持管理决策的数据集合",用规范化的关系模型来存储和管理数据,又成为企业信息工厂
  • Kimball则把数据仓库定义为"为查询和分析定制的交易数据的副本",他的方法通常称作多维数据仓库。

在实际数据仓库建设中,业界往往会相互借鉴使用两种开发模式。目前主要有四种架构,Kimball的DW/BI架构、独立数据集市架构、辐射状企业信息工厂Inmon架构、混合Inmon与Kimball架构本。文将详细介绍 Kimball 和 Inmon 理论在实际数据仓库建设中的应用。

二、企业信息工厂(Inmon)

Bill Inmon的企业信息工厂(Corporate Information Factory, CIF)是两种主要的数据仓库建设模式之一。Inmon关于数据仓库的组成是这样描述的:"面向主题的、整合的、随时间变化的、包含汇总 和明细的、稳定的历史数据集合"。

2.1 概念

Inmon 模式从流程上看是自顶向下的,即从数据源到数据仓库再到数据集市的(先有数据仓库再有数据市场)一种瀑布流开发方法。对于Inmon模式,数据源往往是异构的,比如从自行定义的爬虫数据就是较为典型的一种,数据源是根据最终目标自行定制的。这里主要的数据处理工作集中在对异构数据的清洗,包括数据类型检验,数据值范围检验以及其他一些复杂规则。在这种场景下,数据无法从stage层直接输出到dm层,必须先通过ETL将数据的格式清洗后放入dw层,再从dw层选择需要的数据组合输出到dm层。

在Inmon模式中,并不强调事实表和维度表的概念,因为数据源变化的可能性较大,需要更加强调数据的清洗工作,从中抽取实体-关系。

2.2 主要组件

CIF的组成部分包括:

  • 1)应用程序。应用程序处理业务流程。应用程序产生的明细数据流转到数据仓库和操作型数据存储中,继而用作分析。
  • 2)数据暂存区。介于业务系统源数据库和目标数据仓库之间的一个数据库。暂存区是用于数据抽取、转换和加载的地方,对最终用户透明。暂存区中的大部分数据是短时留存的,通常只有相当少的一部分数据是持久性数据。
  • 3)集成和转换。在集成层,来自不同数据源的数据被转换整合为数仓和ODS里的标准企业模型。
  • 4)操作型数据存储(ODS)。操作型数据存储是业务数据的集成数据库。
  • 5)数据集市。数据集市为后续的数据分析提供数据。这里说的数据通常是数据仓库的子集,用于支持特定分析或特定种类的消费者。
  • 6)操作型数据集市(OpDM)。操作型数据集市是专注于运营决策支持的数据集市。
  • 7)数据仓库。数据仓库为企业数据提供了一个统一的整合入口,以支持管理决策、战略分析和规划。
  • 8)运营报告。运营报告从数据存储中输出。
  • 9)参考数据、主数据和外部数据。

数据仓库和操作性数据存储的区别:

  1. 操作性数据存储数据可能直接来源于应用系统,也可能来自其他数据库。
  2. 操作型数据存储中通常包括当前的或近期的(30~90天)数据,而数据仓库还包含历史(通常是很多年的)数据。
  3. 操作型数据存储的数据变化较快,而数据仓库的数据相对稳定。不是所有的组织都会建设操作型数据存储,操作型数据存储的存在满足了企业对低延迟数据的需求。
  4. 操作型数据存储可以作为数据仓库的主要来源,还可用于对数据仓库做审计。

2.3 流程

通常,Inmon都是以数据源头为导向。

  1. 首先,需要探索性地去获取尽量符合预期的数据,尝试将数据按照预期划分为不同的表需求。
  2. 其次,明确数据的清洗规则后将各个任务通过ETL由Stage层转化到DW层,这里DW层通常涉及到较多的UDF开发,将数据抽象为实体-关系模型。
  3. 接着,在完成DW的数据治理之后,可以将数据输出到数据集市中做基本的数据组合。
  4. 最后,将数据集市中的数据输出到BI系统中去辅助具体业务。

三、多维数据仓库(Kimball)

Kimball的多维数据仓库是数据仓库开发的另一个主要模式。Kimball将数据仓库简单地定义为"专为查询和分析而构建的事务数据的副本"(Kimball,2002)。但是,"副本"的说法并不精确。仓库数据存储在多维数据模型中。多维模型旨在方便数据使用者理解和使用数据,同时还支持更优的查询性能。它不是以实体关系模型的规范化要求组织的。

3.1 概念

Kimball 模式从流程上看是是自底向上 的,即从数据集市到数据仓库再到数据源(先有数据集市再有数据仓库)的一种敏捷开发方法。对于Kimball模式,数据源往往是给定的若干个数据库表,数据较为稳定但是数据之间的关联关系比较复杂,需要从这些OLTP中产生的事务型数据结构抽取出分析型数据结构,再放入数据集市中方便下一步的BI与决策支持。

3.2 核心组件

  • 1)业务源系统。企业中的操作型/交易型应用程序。这些应用程序产生数据,数据再被集成到操作型数据存储和数据仓库中。此组件等同于企业信息工厂图中的应用程序系统。
  • 2)数据暂存区域。Kimball的暂存区域包括需要集成的流程和用于展示的转换数据,可以与企业信息工厂的集成、转换和数据仓库组件的组合进行类比。Kimball的重点是分析类数据的高效终端交付,比 Inmon的企业管理数据范围要小。Kimball的企业数据仓库可以适配数据暂存区域架构。
  • 3)数据展示区域。与企业信息工厂中的数据集市类似,关键的架构差异在于"数据仓库总线"的集成范式,如应用于若干个数据集市的共享或一致的维度。
  • 4)数据访问工具。Kimball方法侧重于最终用户的数据需求。这些需求推动采用适当的数据访问工具

3.3 流程

通常,Kimball都是以最终任务为导向。

  1. 首先,在得到数据后需要先做数据的探索,尝试将数据按照目标先拆分出不同的表需求。
  2. 其次,在明确数据依赖后将各个任务再通过ETL由Stage层转化到DM层。这里DM层数据则由若干个事实表和维度表组成。
  3. 接着,在完成DM层的事实表维度表拆分后,数据集市一方面可以直接向BI环节输出数据了,另一方面可以先DW层输出数据,方便后续的多维分析。

Kimball往往意味着快速交付、敏捷迭代,不会对数据仓库架构做过多复杂的设计,在变换莫测的互联网行业,这种架构方式逐渐成为一种主流范式。

四、异同及用途对比

4.1 异同对比

这两种结构的相似之处:

  • 一、都是假设操作型系统和分析型系统是分离的;
  • 二、数据源(操作型系统)都是众多;
  • 三、ETL整合了多种操作型系统的信息,集中到一个企业数据仓库。

最大的不同就是企业数据仓库的模式不同:

  • inmon是采用第三范式的格式,kimball采用了多维模型--星型模型,并且还是最低粒度的数据存储。
  • 其次,维度数据仓库可以被分析系统直接访问(这种访问方式毕竟在分析过程中很少使用)。
  • 最后就是数据集市的概念有逻辑上的区别,在kimball的架构中,数据集市用维度数据仓库的高亮显示的表的子集来表示。

4.2 特征比较

|----------|-----------|-------------|
| 特征 | Inmon | Kimball |
| 开发周期 | 漫长 | 快速交付 |
| 开发难度 | 大 | 小 |
| 维护难度 | 小 | 大 |
| 技能要求 | 专家级 | 入门级 |
| 数据要求 | 企业级 | 特定业务 |

相关推荐
milk_yan几秒前
MinIO的安装与使用
linux·数据仓库·spring boot
AI量化投资实验室39 分钟前
deap系统重构,再新增一个新的因子,年化39.1%,卡玛提升至2.76(附python代码)
大数据·人工智能·重构
SelectDB1 小时前
Apache Doris 2.1.8 版本正式发布
大数据·数据库·数据分析
TMT星球1 小时前
生数科技携手央视新闻《文博日历》,推动AI视频技术的创新应用
大数据·人工智能·科技
Dipeak数巅科技3 小时前
数巅科技连续中标大模型项目 持续助力央国企数智化升级
大数据·人工智能·数据分析
Ray.19983 小时前
Flink 的核心特点和概念
大数据·数据仓库·数据分析·flink
极客先躯3 小时前
如何提升flink的处理速度?
大数据·flink·提高处理速度
BestandW1shEs3 小时前
快速入门Flink
java·大数据·flink
速融云6 小时前
汽车制造行业案例 | 发动机在制造品管理全解析(附解决方案模板)
大数据·人工智能·自动化·汽车·制造
金融OG6 小时前
99.11 金融难点通俗解释:净资产收益率(ROE)VS投资资本回报率(ROIC)VS总资产收益率(ROA)
大数据·python·算法·机器学习·金融