数据仓库概念:Kimball 与 Inmon 方法
我们 数据仓库 (DWH) 设计中,两种最广泛讨论和解释的数据仓库方法是 Inmon 和 Kimball 方法。多年来,人们一直在争论哪种数据仓库方法对企业更好、更有效。然而,仍然没有明确的答案,因为这两种方法都有其优点和缺点。
在本博客中,我们将讨论数据仓库的基础知识、其特征,并比较两种流行的数据仓库方法——Kimball 与 Inmon。
关键数据仓库概念允许用户访问统一版本的事实,以便及时进行业务决策、报告和预测。 DWH 的功能类似于一个信息系统,其中存储了来自一个或多个来源的所有过去数据和交换数据。
数据仓库模型
数据仓库模型 参考 用于在数据仓库环境中组织和管理数据的架构设计和结构。这些模型规定了如何存储、访问和利用数据以进行分析。主要部分包括:
- 虚拟仓库: 包含可以集中查询的单独数据库,允许用户访问数据,就像数据存储在单个仓库中一样。
- 数据库: 专注于特定的业务职能或部门,包含为分析而定制的数据子集。
- 企业数据仓库: 综合存储库集成了整个组织内各种来源的数据,支持企业范围的分析和报告。
数据仓库的特征
以下是数据仓库的四个特征:
- 面向学科: 数据仓库使用主题,并提供有关特定主题而不是公司当前运营的信息。 换句话说,数据仓库流程更有能力处理特定主题。 主题或科目的示例包括销售、分销、营销等。
- 集成: 集成被定义为在来自多个数据库或源的大量数据之间建立连接。 然而,数据以统一的方式存储在数据仓库中也是至关重要的。 数据仓库的过程集成了来自多个来源的数据,例如大型机、关系数据库、平面文件等。此外,它有助于保持一致的代码、属性度量、命名约定和格式。
- 时变: 与其他操作系统相比,DW 中的时变更为广泛。 存储在数据仓库中的数据会在特定时间段内被调用,并从历史角度提供信息。
- 非挥发性: 在非易失性数据仓库中,数据是永久性的,即当插入新数据时,先前的数据不会被替换、省略或删除。 在这个数据仓库中,数据是只读的,并且仅以一定的时间间隔刷新。 数据仓库中执行的两种数据操作是数据访问和数据加载。

数据仓库的特点和功能(来源:GeeksforGeeks)
数据仓库的功能
数据仓库充当存储库。 它可以帮助组织避免企业级存储系统和备份数据的成本。 数据仓库的突出功能是:
规范化与非规范化方法
标准化被定义为数据重组的一种方式。 这有助于满足两个主要要求 企业数据仓库 即消除数据冗余并保护数据依赖性。 另一方面,非规范化增加了数据库系统基础设施的功能。
数据仓库与数据库
数据仓库和数据库的主要区别总结如下表:
| 数据库 | 数据仓库 |
| 数据库是相关数据的合并。 | 数据仓库作为一种信息系统,包含来自一个或多个源的历史数据和交换数据。 |
| 数据库用于记录数据。 | 数据仓库用于分析数据。 |
| 数据库是面向应用程序的数据集合。 | 数据仓库是面向主题的数据集合。 |
| 数据库使用联机事务处理 (OLTP)。 | 数据仓库使用在线分析处理(OLAP)。 |
| 数据库表和连接已标准化,因此更加复杂。 | 数据仓库表和连接是非规范化的,因此更简单。 |
| ER 建模技术用于设计。 | 数据建模技术用于设计。 |
两种数据仓库概念:Kimball 与 Inmon
两种数据仓库设计方法都有各自的优点和缺点。 让我们详细了解一下它们,看看哪一个更好。
金博尔方法论
Kimball 数据模型由 Ralph Kimball 发起,采用自下而上的方法 数据仓库架构设计 首先根据业务需求形成数据集市。
然后对主要数据源进行评估,并 提取、转换和加载 (ETL) 工具 用于从多个源获取数据并将其加载到关系数据库服务器的暂存区域。 将数据上传到数据仓库暂存区域后,下一阶段包括将数据加载到本质上非规范化的维度数据仓库模型中。 该模型将数据划分为事实表,事实表是数值事务数据或维度表,是支持事实的参考信息。
星型模式是维度数据仓库模型的基本元素。 事实表与多个维度表的组合通常称为星型模式。 Kimball 维度建模允许用户构建多个星型模式来满足各种报告需求。 星型模式的优点是小型维度表查询可以即时运行。
为了集成数据,Kimball 数据仓库生命周期方法提出了一致数据维度的想法。 它作为数据仓库内不同事实表(例如客户和产品)之间共享的基本维度表而存在,或者作为各种 Kimball 数据集市中的相同维度表而存在。 这保证了单个数据项在所有事实中以类似的方式使用。
Ralph Kimball 数据仓库方法论中的一个重要设计工具是企业总线矩阵或 Kimball 总线架构,它垂直记录事实,水平记录一致维度。 Kimball 矩阵是总线架构的一部分,显示了星型模式的构建方式。 业务管理团队使用它作为输入来确定应首先实施 Kimball 矩阵的哪一行的优先级。
Kimball 的数据仓库生命周期方法也基于一致的事实,即与健壮的架构一起单独实施的数据集市。

图 2. Kimball 数据仓库基本架构说明(来源:Zentut)
Kimball 方法的优点
Kimball 数据仓库概念的一些主要优点包括:
- Kimball 维度建模的构建速度很快,因为不涉及标准化,这意味着快速执行初始阶段 数据仓库 设计过程。
- 星型模式的优点是,由于其非规范化结构,大多数数据操作员都可以轻松理解它,从而简化了查询和分析。
- 数据仓库系统占用空间很小,因为它专注于单个业务领域和流程而不是整个企业。 因此,它占用的数据库空间更少,简化了系统管理。
- 由于数据被分为事实表和维度,因此它可以从数据仓库中快速检索数据。 例如,保险业的事实和维度表将包括保单交易和索赔交易。
- 由于数据源系统稳定,并且数据仓库是面向流程的,因此较小的设计人员和规划人员团队就足以进行数据仓库管理。 此外,查询优化非常简单、可预测且可控。
- 一致的尺寸结构 数据质量 框架。 Kimball 数据仓库生命周期方法也称为业务维度生活方式方法,因为它允许商业智能工具更深入地跨越多个星型模式并生成可靠的见解。

Kimball 数据仓库生命周期方法(来源:Kimball Group)
Kimball 方法的缺点
Kimball 的一些缺点 数据仓库 设计理念包括:
- 报告前数据并未完全整合; “单一真相来源”的想法已经消失。
- Kimball DW 架构中的数据更新时可能会出现异常情况。 这是因为在非规范化技术中,冗余数据被添加到数据库表中。
- 在 Kimball DW 架构中,由于事实表中添加列,可能会出现性能问题,因为这些表非常深入。 添加新列会扩大事实表维度,影响其性能。 此外,维度数据仓库模型变得难以随着业务需求的任何变化而改变。
- 由于Kimball模型是面向业务流程的,而不是关注企业整体,因此无法处理所有的BI报告需求。
- 将大量遗留数据合并到数据仓库中的过程非常复杂。
英蒙方法
数据仓库之父比尔·英蒙 (Bill Inmon) 提出了开发数据仓库的概念,该数据仓库可识别企业合作的主要主题领域和实体,例如客户、产品、供应商等。 Bill Inmon 对数据仓库的定义是,它是“面向主题的、非易失性的、集成的、随时间变化的数据集合,以支持管理层的决策”。
然后,该模型为每个主要实体创建一个彻底的逻辑模型。 例如,为具有与该实体关联的所有属性的产品构建逻辑模型。 该逻辑模型可以包括产品下的十个不同实体,包括所有细节,例如业务驱动因素、方面、关系、依赖关系和从属关系。
这个 比尔·英蒙的设计方法 使用规范化形式构建实体结构,尽可能避免数据冗余。这样可以清楚地识别业务需求并防止任何数据更新违规行为。此外,这种自上而下的方法的优点是 数据库设计 其优点是它对业务变化具有鲁棒性,并且包含跨数据集市的数据的维度视角。
接下来,构建遵循归一化结构的物理模型。 Bill Inmon 模型为整个业务创建了单一事实来源。 由于模型的标准化结构,数据加载变得不那么复杂。 然而,使用这种安排进行查询具有挑战性,因为它包括大量的表和链接。
Inmon 数据仓库方法建议为每个部门(例如财务、营销等)单独构建数据集市。所有进入数据仓库的数据都是集成的。 数据仓库充当各种数据集市的单一数据源,以确保整个企业的完整性和一致性。

图 3. Bill Inmon 基本数据仓库架构说明(来源:斯坦福大学)
英蒙法的优点
Bill Inmon 的设计方法具有以下优点:
- 数据仓库充当整个业务的统一事实来源,其中集成了所有数据。
- 这种方法的数据冗余度非常低。 因此,数据更新不规则的可能性较小,使得基于 ETL 概念的数据仓库过程更加直接且不易失败。
- 它简化了业务流程,因为逻辑模型代表了详细的业务对象。
- 这种方法提供了更大的灵活性,因为在业务需求或源数据发生任何变化时更容易更新数据仓库。
- 它可以处理各种企业范围的报告要求。
Inmon 方法的缺点
这种方法可能存在的缺点如下:
- 随着时间的推移,多个表被添加到数据模型中,复杂性也会增加。
- 需要熟练掌握数据仓库数据建模的资源,而这些资源可能非常昂贵且难以找到。
- 初步设置和交付非常耗时。
- 由于数据集市是在数据仓库创建之后创建的,因此需要额外的 ETL 流程操作。
- 这种方法需要专家有效地管理数据仓库。
选择哪种数据仓库方法?
现在我们已经评估了 Kimball 与 Inmon 方法并了解了这两种方法的优点和缺点,问题出现了: 这些数据仓库概念中哪一种最适合您的业务?
这两种方法都考虑 数据仓库 作为支持业务报告的中央存储库。 此外,这两种方法都使用 ETL 概念来加载数据。 然而,主要区别在于对数据进行建模并将其加载到数据仓库中。
用于数据仓库建设的方法会影响仓储项目的初步交付时间以及承受 ETL 设计中的预期变化的能力。
仍然不确定金博尔与英蒙困境的结论吗? 我们可以帮助您决定这些数据仓库方法中的哪一种将有助于改善您的 数据质量管理 框架以最好的方式?
我们缩小了几个方面的范围,可以帮助您在这两种方法之间做出决定。
- 报告需求:如果您需要组织范围内的综合报告,那么 Bill Inmon 方法更合适。 但如果您需要专注于业务流程或团队的报告,那么请选择 Kimball 方法。
- 项目截止日期: 设计规范化数据模型比设计非规范化模型相对更复杂。 这使得 Inmon 方法成为一个耗时的过程。 因此,如果您的交货时间较少,请选择 Kimball 方法。
- 未来招聘计划: Inmon 数据仓库方法中数据模型创建的复杂性较高,需要更大的数据仓库管理专业人员团队。 因此,请相应地选择。
- 频繁变更: 如果您的报告需求可能会更快地变化,并且您正在处理不稳定的源系统,那么请选择 Inmon 方法,因为它提供了更大的灵活性。 但是,如果报告需求和源系统相对稳定,则最好使用 Kimball 方法。
- 组织原则: 如果您组织的利益相关者和公司董事认识到数据仓库的必要性并准备承担费用,那么 Bill Inmon 数据仓库方法将是一个更安全的选择。 另一方面,如果决策者不关心该方法的实质内容,而只是寻找改进报告的解决方案,那么选择 Kimball 数据仓库方法就足够了。
底线
Kimball 和 Inmon 数据仓库概念都可以用来成功设计数据仓库模型。 事实上,一些企业混合使用这两种方法(称为混合数据模型)。
在混合数据模型中,Inmon 方法创建数据仓库的维度数据仓库模型。 相比之下,遵循 Kimball 方法使用星型模式开发数据集市。
不可能断言哪种方法更好,因为这两种方法都有其优点和缺点,在不同的情况下效果很好。 数据仓库设计者必须根据本文讨论的各种因素来选择一种方法。
最后,任何方法要想有效,都必须经过深思熟虑、深入探索和发展,以满足公司的需求。 商业智能 报告要求。
Astera Data Warehouse Builder – 自动化数据仓库解决方案
Astera 数据仓库构建器 提供一个集成平台来设计、部署和测试大容量 数据仓库和 自动化流程以快速获得有意义的见解,而无需编写 ETL 代码。
组织正在走向 数据仓库自动化 节省成本、最大限度地提高生产力并更快地获得可行的见解。 数据仓库自动化使您能够快速构建高质量的数据集市,构建自我调节的数据管道,并通过 BI 和分析工具向决策者提供相关见解。
数据仓库自动化消除了填充数据仓库中最耗时的部分:编写 ETL/ELT 代码。 由于不需要 SQL 手动编码,开发人员可以将精力集中在逻辑级别(设计级别)上,以创建更高效的集成流程。
此外,自动化还可以帮助您设计 敏捷数据仓库基础设施。 其结果是一个适应性更强、响应更快的数据存储库,可以有效地查询,在几秒钟内产生有价值的见解,并允许您提取有价值的见解。
简而言之,消除规划、建模和部署步骤中的手动干预使您能够 构建更好质量的数据仓库 并在几周甚至几天内取得成功。


