Kimball和Inmon的区别

Kimball和Inmon都是数据仓库领域的重要人物,他们对于数据仓库的设计理念有着不同的观点,具体如下:

Inmon的设计理念

Inmon提出的数据仓库设计理念被称为“企业数据仓库(Enterprise Data Warehouse,简称EDW)”,它是一个面向整个企业的数据仓库,由多个主题区域(Subject Area)组成,通过ETL(Extract, Transform, Load)过程从不同的操作性系统中抽取数据,并进行清洗、整合和质量控制等一系列操作。

Inmon的设计理念强调数据的一致性和标准化,他认为数据应该有一个“真正的”模型,这个模型应该是“第三范式”(Third Normal Form)的。

例如,Inmon的数据模型通常为ER模型,如下图所示:

Inmon的ER模型

Inmon认为,一个数据仓库需要有以下特点:

  1. 数据集中存储,一致性可靠;
  2. 以主题区域划分数据,方便用户访问;
  3. 通过ETL过程进行数据转换和数据清理;
  4. 数据模型是规范化的ER模型,方便维护;
  5. 数据仓库和操作数据库分离,避免性能问题。

Kimball的设计理念

Kimball提出的数据仓库设计理念被称为“维度建模(Dimensional Modeling)”,它的特点是以业务过程为中心,通过维度和事实表来组织数据。

Kimball的设计理念强调快速响应和易于理解,他认为数据应该以“星型模型”(Star Schema)的方式组织,而不是“第三范式”。

例如,Kimball的数据模型通常为星型模型,如下图所示:

Kimball的星型模型

Kimball认为,一个数据仓库需要有以下特点:

  1. 聚焦于业务过程,易于理解;
  2. 以维度和事实表划分数据,易于查询;
  3. 通过ETL过程进行数据转换和数据清理;
  4. 数据模型是星型模型,方便查询和报表;
  5. 数据仓库和操作数据库分离,避免性能问题。

区别对比

总结起来,Inmon的设计理念强调数据的一致性和标准化,数据仓库应该由多个主题区域组成,采用ER模型,通过ETL过程进行数据转换和数据清理,数据集中存储,但不能很好支持业务的快速响应。

Kimball的设计理念则强调业务的快速响应和易于理解,采用了星型模型,通过ETL过程进行数据转换和数据清理,以维度和事实表划分数据,可以很好地支持查询和报表。

以下是两个设计理念的主要区别:

对比项目 Inmon Kimball
模型 ER模型 星型模型
主题区域 多个主题区域 以业务过程为中心
一致性和标准化 强调 不强调
业务响应 不够灵活 灵活
查询和报表 不够方便 方便

例如,如果我们想要实现一个销售数据分析的数据仓库,Inmon的设计理念可能首先考虑数据标准化和细节的处理,例如销售员、客户、订单等细节数据的ER模型建模,然后再通过ETL过程将数据加载至数据仓库。而Kimball的设计理念则会首先考虑业务过程的建模,例如以“销售”业务过程为中心,定义“时间”、“地点”、“客户”等维度,以及“销售额”、“利润”等事实表。

综上所述,Inmon和Kimball两种设计理念的应用场景有所不同,应该根据实际情况选择合适的设计理念。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Kimball和Inmon的区别 - Python技术站

(0)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • 从redis数据库取数据存放到本地mysql数据库

    redis数据库属于非关系型数据库,数据存放在内存堆栈中,效率比较高。 其存储数据是以json格式字符串存储字典的,而类似的关系型数据库无法实现这种数据的存储。 在爬取数据时,将数据暂存到redis中,等数据采集完成后,在从redis里将数据读取,并写入mysql数据库中。 在数据采集方面不在多说,只需将项目settings文件下的pipelines管道文件…

    Redis 2023年4月13日
    00
  • Centos 7.3下SQL Server安装配置方法图文教程

    Centos 7.3下SQL Server安装配置方法图文教程 Microsoft SQL Server是一种关系数据库管理系统,可用于存储和检索数据。本教程将向您展示如何在CentOS 7.3上安装和配置SQL Server。 步骤1:添加Microsoft SQL Server存储库 使用以下命令将Microsoft SQL Server存储库添加到Ce…

    database 2023年5月22日
    00
  • postgresql数据库配置文件postgresql.conf,pg_hba.conf,pg_ident.conf

    PostgreSQL是一款功能强大的关系型数据库,它的配置文件主要有postgresql.conf、pg_hba.conf以及pg_ident.conf三个。其中postgresql.conf是PostgreSQL的主要配置文件,它提供了大量可配置的选项用来控制数据库系统的行为,pg_hba.conf和pg_ident.conf则主要关注在安全性方面。 下面…

    database 2023年5月22日
    00
  • 使用 Apache Superset 可视化 ClickHouse 数据的两种方法

    使用 Apache Superset 可视化 ClickHouse 数据的两种方法: Apache Superset 是一个强大的、开源的、基于 Web 的数据可视化和数据探索平台,而 ClickHouse,则是一个高速的列式分布式数据库管理系统。 方法一:通过了解 ClickHouse 数据库 首先,在 Apache Superset 中创建新的数据源,选…

    database 2023年5月22日
    00
  • yii2 下的redis常用命令集合

    <?php \Yii::$app->redis->set(‘user’,’aaa’); \Yii::$app->redis->set(‘user2′,’bbb’); \Yii::$app->redis->set(‘user3′,’ccc’); \Yii::$app->redis->set(‘user4’,…

    Redis 2023年4月16日
    00
  • SQL Where 和 Group By 的区别

    当我们需要从数据库中获取数据时,我们通常使用 SQL 查询语句。其中,使用 WHERE 子句和 GROUP BY 子句是非常常见的操作。 WHERE 子句是用来筛选数据的,可以根据指定的条件来过滤表中的记录。而 GROUP BY 子句则是将相同的数据分组,并对分组后的数据进行聚合操作,如 COUNT、AVG、SUM 等。下面分别介绍 WHERE 和 GROU…

    database 2023年3月27日
    00
  • sql注入报错之注入原理实例解析

    接下来我将详细讲解 “SQL注入报错之注入原理实例解析”的攻略,包含以下几个部分: 1. SQL注入简介 SQL注入是一种常见的攻击技术,它利用Web应用程序开发中的漏洞,将恶意的SQL代码注入到网站后台数据库中,从而跳过身份认证和授权机制,获取和操作数据库中的敏感数据,甚至控制网站后台服务器。 2. SQL注入报错的原理和实现方式 当攻击者尝试利用SQL注…

    database 2023年5月18日
    00
  • Oracle数据库并行查询出错的解决方法

    下面我将详细讲解“Oracle数据库并行查询出错的解决方法”的完整攻略,过程中会包含两条示例说明。 标题:Oracle数据库并行查询出错的解决方法 问题描述 在Oracle数据库进行并行查询时,可能会遇到以下错误信息: ORA-12801: 并行查询的结果超过了服务器限制,您可以使用查询重写、分片或者重新设计查询来减少并行查询的结果量。 这个错误信息通常出现…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部