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

news2024/11/18 9:42:38

目录

一、前言

二、企业信息工厂(Inmon)

2.1 概念

2.2 主要组件

2.3 流程

三、多维数据仓库(Kimball)

3.1 概念

3.2 核心组件

3.3 流程

 四、异同及用途对比

4.1 异同对比

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 特征比较

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1233662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据智能引擎:企业模糊搜索API精准获取企业列表信息

引言 随着信息时代的迅速发展,数据变得愈加庞大和复杂。在这个大数据的时代,企业面临着海量信息的管理和利用挑战。为了更有效地获取并利用数据,企业信息模糊搜索API成为了企业数据智能引擎的一部分,为企业提供了精准的企业列表检…

系列十四、异步回调

一、概述 二、案例代码 /*** Author : 一叶浮萍归大海* Date: 2023/11/21 10:45* Description: 异步任务案例代码*/ public class CompletableFutureMainApp {public static void main(String[] args) throws ExecutionException, InterruptedException {CompletableFuture<…

缓存穿透、缓存雪崩、缓存击穿问题的解决思路

一、缓存穿透 缓存穿透 &#xff1a;缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库。 常见的解决方案有两种&#xff1a; 缓存空对象 优点&#xff1a;实现简单&#xff0c;维护方便 缺点&am…

工作记录---淘宝双11,亿级流量高并发是怎么抗住?(站在巨人的肩膀上学习,超开心~)--------脚踏实地,持续学习(看完这一篇获益匪浅)

什么是分布式&#xff1f; 系统中的多个模块在不同服务器上部署&#xff0c;即可称为分布式系统。 如Tomcat和数据库分别部署在不同的服务器上&#xff0c;或两个相同功能的Tomcat分别部署在不同服务器上。 什么是高可用&#xff1f; 系统中部分节点失效时&#xff0c;其他节…

MatrixOne完成与麒麟信安、欧拉的兼容互认

近日&#xff0c;超融合异构云原生数据库MatrixOne企业版软件V1.0完成了与欧拉开源操作系统&#xff08;openEuler简称“欧拉”&#xff09;、麒麟信安操作系统系列产品和虚拟化平台的相互兼容认证&#xff0c;通过了欧拉兼容性测评&#xff0c;获得了《openEuler技术测评证书》…

打造完美照片,尽在PhotoFoundry for Mac

想要给你的照片加上绚丽的滤镜、调整色彩和对比度&#xff0c;甚至进行精确的修图吗&#xff1f;PhotoFoundry for Mac将成为你的绝佳选择&#xff01; PhotoFoundry for Mac是一款功能强大的照片编辑软件&#xff0c;它为你提供了丰富多样的工具和特效&#xff0c;让你能够轻…

蓝桥杯每日一题2023.11.21

题目描述 “蓝桥杯”练习系统 (lanqiao.cn) 题目分析 思路&#xff1a; 1.去重排序将其进行预处理 2.用gcd得到最简比值 3.用gcd_sub分别计算分子、分母的指数最大公约数 #include<bits/stdc.h> using namespace std; const int N 110; typedef long long ll; ll…

VirtualBox7安装Ubuntu20及全屏、共享、粘贴板等设置

VirtualBox7安装Ubuntu20及全屏、共享、粘贴板等设置 1. 安装VirtualBox2. 安装Ubuntu202.1 获得x.vdi2.2 新建虚拟电脑 3. 增强设置3.1 增强功能3.2 全屏3.2 共享文件夹3.4 粘贴板 1. 安装VirtualBox 官网https://www.virtualbox.org/wiki/Downloads下载&#xff0c;笔者选择…

软考必须得从初级开始考吗?

软考是指软件技术专业资格考试&#xff0c;是由中国计算机技术职业资格认证中心&#xff08;NCTC&#xff09;主办的一项国家级考试。软考考试内容涵盖了软件工程、数据库、网络与信息安全、嵌入式系统等多个方面的知识&#xff0c;是评价软件技术人员专业水平的重要标准。 对于…

Python3.11+Pyside6开发电影下载程序

VideoSave是一款使用Python3.11Pyside6编写的提供下载电影/电视剧的软件&#xff0c;支持注册、登录、搜索、下载、查看日志等功能&#xff0c;提供了Window、Mac系统安装包。 先上效果图 提供功能 节省寻找资源的时间 ⌚️模糊搜索指定影片 &#x1f434;查看影片下载日志 &…

Idea2023 Springboot web项目正常启动,页面展示404解决办法

Idea2023 Springboot web项目正常启动,页面展示404解决办法 问题&#xff1a; 项目启动成功&#xff0c;但是访问网页&#xff0c;提示一直提示重定向次数过多&#xff0c;404 解决方法 在IDEA的Run/Debug Configurations窗口下当前的Application模块的Working directory中添…

甲方需求被公司明确指示不能做,身为公司项目经理,怎么处理?

作为公司的实施或项目经理&#xff0c;当甲方提出一个合同外的需求并且态度强硬时&#xff0c;我的回复将基于以下几个原则&#xff1a;尊重合同约定、明确沟通、提供解决方案和风险评估。 首先&#xff0c;我会强调合同的约定和范围。合同是双方达成的法律文件&#xff0c;其中…

物流实时数仓:采集通道搭建

系列文章目录 物流实时数仓&#xff1a;环境搭建 文章目录 系列文章目录前言一、环境准备1.前置环境2.hbase安装1.上传并解压2.配置环境变量3.拷贝jar包4.编写配置文件5.分发配置文件 3.Redis安装1.安装需要的编译环境2.上传并解压文件3.编译安装4.后台访问 4.ClickHouse安装5…

LeetCode | 19. 删除链表的倒数第 N 个结点

LeetCode | 19. 删除链表的倒数第 N 个结点 OJ链接 思路&#xff1a; 定义虚拟头节点dummy并初始化使其指向head然后定义快慢指针让快指针先走n步然后一起走最后删除倒数第n个节点然后释放虚拟节点dummy struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {…

零代码编程:用ChatGPT根据视频标题来批量重命名字幕文件

现在有很多视频文件&#xff1a; 还有视频相对应的字幕文件&#xff1a; F:\儿童学习教育\Abadas.适合2岁以上.BBC儿童学习单词的动画\abadas字幕 两者的文件标题不一样&#xff0c;现在要将字幕文件的标题全部根据视频文件来重命名。 在chatGPT中输入提示词&#xff1a; 你…

新版Testwell CTC++带来哪些新变化?

Testwell CTC在版本10中引入了新的工具ctcreport来直接从符号和数据文件生成HTML报告。详细的特性描述可以在测试井CTC帮助中找到。在本文档中&#xff0c;描述了与前一代报告相比的改进和变化。 Adaptable Layout可调整布局 您可以选择一个适合于项目结构的布局。布局决定了报…

tokenizers Tokenizer 类

Tokenizer 类 依赖安装 pip install tensorflow pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple基类原型 tokenizers.Tokenizer(model)基类说明 Tokenizer 函数构造一个分词器对象。分词方式主要有word-level、subword-level、char-level三种&#x…

visionOS空间计算实战开发教程Day 1:环境安装和编写第一个程序

安装 截至目前visionOS还未在Xcode稳定版中开放&#xff0c;所以需要下载​​Xcode Beta版​​。比如我们可以下载Xcode 15.1 beta 2&#xff0c;注意Xcode 15要求系统的版本是macOS Ventura 13.5或更新&#xff0c;也就是说2017年的MacBook Pro基本可以勉强一战&#xff0c;基…

数据仓库

一. 各种名词解释 1.1 ODS是什么&#xff1f; ODS层最好理解&#xff0c;基本上就是数据从源表拉过来&#xff0c;进行etl&#xff0c;比如mysql 映射到hive&#xff0c;那么到了hive里面就是ods层。 ODS 全称是 Operational Data Store&#xff0c;操作数据存储.“面向主题的…

[C++随想录] 哈希之unordered_map和unordered-set的封装

unordered_map和unordered_set的封装 1. hash模版的改变1.1 hash类模板 头的改变1.2 封装迭代器类1.2.1 构造 && 拷贝构造1.2.2. 1.2.3. 其他运算符重载 1.3 hash类实现普通迭代器和const迭代器 2. unordered_set的底层逻辑3. unordered_map的底层逻辑4. 源码4.1 hash类…