返回介绍

3.3 数据仓库建模

发布于 2024-10-03 15:40:36 字数 8813 浏览 0 评论 0 收藏 0

DW 三种常见模型:E/R 关系、维度和 Data Vault 模型。

3.3.1 E/R 范式建模

参见 数据模型。

3.3.2 kimball 维度模型

《The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3rd ed.)》

评论 :《数据仓库工具箱(第 3 版)-- 维度建模权威指南》英文初版 1996 年,二版 1998 年,三版 2015 年。kimball 是本书作者,也是 kimball 集团的创始人。第三版共 21 章其中 14 章是 14 个行业的建模案例。

表格 6 维度建模常用术语

名词定义
维度Dimension,相当于 SQL 中的 GROUP BY
度量对于在事实表或者一个多维立方体里面存放的数值型的、连续的字段,就是度量。
cube 立方体指的是维度的组合,是 2^N。如 3 个维度有 8 种组合(1,2,3,12,13,23,123,空)。
事实表数据仓库结构中的中央表,它包含联系事实与维度表的数字度量值和键。事实数据表包含描述业务(例如产品销售)内特定事件的数据。
维度表维度属性的集合。可分为细节维度和维度子集(子维度,如更高粒度的汇总)。
层次维度如日期有四个层次:年、季度、月和日。
退化维度指减少维度的数量,通常被保留作操作型事务的标识符。
杂项维度一种包含的数据具有很少可能值的维度,如标志和指示符字段。
周期事实表 
累积事实表 

维度模型常见的有:星型、雪花。

核心概念:事实表、维度表、度量、粒度。

事实表 :事实表是数据仓库结构中的中央表,它包含联系事实与维度表的数字度量值和键。事实数据表包含描述业务(例如产品销售)内特定事件的数据。

维度表 :维度表是维度属性的集合。是分析问题的一个窗口。是人们观察数据的特定角度,是考虑问题时的一类属性, 属性的集合构成一个维。把逻辑业务比作一个立方体,产品维、时间维、地点维分别作为不同的坐标轴,而坐标轴的交点就是一个具体的事实。也就是说事实表是多 个维度表的一个交点,而维度表是分析事实的一个窗口。

度量 :对于在事实表或者一个多维立方体里面存放的数值型的、连续的字段,就是度量。这符合上面的意思,有标准,一个度量字段肯定是统一单位,例如元、户数。

粒度:

维度模型的逻辑表示:星型、雪花型。

构建过程

  1. 选择业务流程。

  2. 声明粒度。粒度用来确定事实中表示是什么。

  3. 确认维度。

  4. 确认事实。

维度表技术

维度表(Dimension Table)是数据仓库中存储描述性信息的表,用于为事实表中的数值数据提供上下文。维度表通常包含业务分析所需的详细信息,帮助用户理解和分析数据。

维度表的主要特点:

  1. 描述性

    • 维度表存储的是非数值型的描述性信息,如产品名称、客户姓名、时间等。
  2. 多值属性

    • 维度表可以包含多个属性,以提供丰富的上下文。例如,一个产品维度表可能包含品牌、类别、颜色等属性。
  3. 主键

    • 每个维度表都有一个主键(通常是一个唯一标识符),用于在事实表中关联。
  4. 数据层次

    • 维度表可以具有层次结构,如时间维度可能包括年、季度、月、日等不同层级。

维度表的设计原则:

  1. 星型模型

    • 维度表围绕事实表组织,形成简单易懂的结构。每个维度表直接与中心事实表相连。
  2. 雪花模型

    • 在星型模型的基础上,维度表进行规范化,形成多层次的结构。虽然结构复杂,但可以减少冗余。
  3. 维度表的历史管理

    • 慢变维度(SCD) :管理维度表中的历史数据变化。例如:
      • 类型 1 :直接覆盖旧值,不保留历史。
      • 类型 2 :保留历史,通过添加新记录来跟踪变化。
      • 类型 3 :只保留有限的历史数据,通过增加新的字段来跟踪。

维度表的类型:

  1. 静态维度

    • 属性值变化不频繁,如国家或地区信息。
  2. 动态维度

    • 属性值经常变化,如客户的联系信息。
  3. 角色扮演维度

    • 在不同上下文中扮演不同角色的维度表,例如“日期”维度可以在销售和交付中分别使用。

维度表的应用:

  • 数据分析 :帮助分析师理解数据背后的业务含义。
  • 报告生成 :支持基于维度的数据报告,如销售按地区、产品类别分析。
  • 数据挖掘 :提供丰富的特征用于模型训练和预测分析。

总结:

维度表是数据仓库设计中的重要组成部分,通过组织和存储描述性数据,帮助用户更好地理解和分析事实数据。良好的维度表设计可以提高数据仓库的性能和可用性,使企业能够更有效地利用数据进行决策和战略规划。

事实表技术

事实表(Fact Table)是数据仓库中存储数值型度量和关键业务事件的表。它是数据仓库的核心,主要用于支持分析和报告。事实表通常与维度表一起使用,通过外键与维度表关联,提供上下文信息。

事实表的主要特点:

  1. 数值型度量

    • 事实表中的数据通常是可以量化的指标,如销售额、订单数量、利润等。
  2. 主键

    • 事实表通常没有单一主键,而是由多个外键组成,这些外键引用相关的维度表。
  3. 时间敏感

    • 事实表中的数据通常与时间相关,例如交易的日期和时间。
  4. 高粒度

    • 事实表的粒度定义了数据的详细程度,可能是每个交易、每天的汇总,或更高层级的汇总。

事实表的设计原则:

  1. 粒度确定

    • 在设计事实表时,需要明确粒度,即每条记录代表的数据的细节程度。粒度的确定影响到数据的存储、性能和查询效率。
  2. 外键设计

    • 每个事实表都应该包含外键,这些外键指向相关的维度表。确保这些关系的正确性,有助于提高查询效率。
  3. 度量值选择

    • 选择合适的度量值,以便支持业务分析。常见的度量包括销售额、订单数、退款金额等。
  4. 多维建模

    • 事实表通常与多个维度表关联,形成星型或雪花模型,支持多维数据分析。

事实表的类型:

  1. 增量事实表

    • 记录每次业务事件的发生,适用于需要精确追踪的场景。
  2. 汇总事实表

    • 存储按某些维度汇总的数据,例如按月的销售总额。这种表通常用于提高查询性能。
  3. 快照事实表

    • 在特定时间点记录的事实数据,用于时间序列分析。例如,每天的库存快照。

事实表的应用场景:

  • 业务分析 :支持管理层进行销售、财务等方面的分析。
  • 报告生成 :为各种报告提供基础数据,如财务报告、运营报告等。
  • 数据挖掘 :提供数据支持,用于机器学习和预测分析。

总结:

事实表是数据仓库设计的核心组成部分,存储着关键的业务指标和事件数据。通过合理设计事实表,可以有效支持业务分析和决策,提高企业的运营效率。合理的粒度、外键设计和度量选择是确保事实表有效性的关键因素。

3.3.3 Data Vault 模型

此模型有中心表(HUB)、链接表(LINK)、附属表(SATELLITE)三个主要组成部分。中心表记录业务主键,链接表记录业务关系,附属表记录业务描述。

Data Vault 是一种数据仓库建模方法,旨在提供灵活、高效且可扩展的数据集成解决方案,特别适用于处理快速变化和复杂的数据环境。该模型由 Dan Linstedt 提出,特别适合大规模企业的需求。

Data Vault 的核心概念:

  1. 三种主要组件

    • Hub(中心) :存储业务实体的唯一标识符,表示核心业务概念(如客户、产品等)。每个 Hub 只包含唯一键和一些元数据(如加载时间、来源系统等)。
    • Link(连接) :存储 Hub 之间的关系,表示实体之间的关联。每个 Link 记录了参与关系的 Hub 及其相关的元数据。
    • Satellite(卫星) :存储与 Hub 或 Link 相关的描述性属性和历史数据。卫星表可以包含变化的属性,支持慢变维度管理。
  2. 灵活性和可扩展性

    • Data Vault 模型设计允许随时添加新的 Hub、Link 和 Satellite,适应业务变化和新数据源的集成。
  3. 历史追踪

    • 通过卫星表,Data Vault 可以有效地跟踪历史数据变化,支持时间维度分析。
  4. 解耦合

    • Hub、Link 和 Satellite 的分离设计使得数据模型解耦,便于管理和扩展。

Data Vault 的建模步骤:

  1. 识别业务实体

    • 确定业务中核心的实体(Hub),例如客户、订单、产品等。
  2. 定义关系

    • 确定这些实体之间的关系(Link),例如客户与订单之间的关系。
  3. 属性收集

    • 收集与每个 Hub 和 Link 相关的属性,并设计卫星表以存储这些属性。
  4. 实现 ETL 流程

    • 开发 ETL 流程以从不同数据源提取数据,转换为 Data Vault 模型,并加载到相应的 Hub、Link 和 Satellite 表中。

Data Vault 的优缺点:

优点:

  • 灵活性 :能够轻松适应数据源和业务需求的变化。
  • 历史管理 :支持对历史数据的有效管理。
  • 适合大规模 :设计适合于处理大规模数据和复杂关系。

缺点:

  • 学习曲线 :对于不熟悉的团队,Data Vault 的概念和设计可能需要一定时间来掌握。
  • 复杂性 :数据模型相对较复杂,可能导致初期实施时的挑战。

应用场景:

  • 大数据环境 :适合于需要整合多个数据源的大型企业。
  • 快速变化的业务 :企业业务需求和数据源频繁变化时,Data Vault 能够提供灵活的解决方案。
  • 历史数据分析 :需要对历史数据进行深入分析的业务场景。

总结:

Data Vault 模型提供了一种灵活、可扩展和历史友好的数据仓库建模方法,适合于处理复杂的业务环境和快速变化的数据需求。通过 Hub、Link 和 Satellite 的结构,Data Vault 能够有效地整合和管理大量的业务数据,为企业决策提供有力支持。

3.3.4 Anchor 模型

Anchor 模型是一种数据建模方法,旨在创建一个灵活和可扩展的数据仓库结构,适合处理复杂数据和动态需求。它由 数据建模专家 Lynx 提出,尤其适用于需要快速适应变化和支持高效查询的环境。

Anchor 模型的核心概念

  1. Anchor(锚)

    • Anchor 是数据模型的核心,代表一个具体的业务实体(如客户、产品等)。每个 Anchor 通常包含一个唯一标识符(主键),以及与该实体相关的属性。
  2. Attribute(属性)

    • 属性是与 Anchor 相关的字段,描述了该业务实体的特征。属性可以是静态的,也可以是动态变化的。
  3. Link(连接)

    • Link 用于表示 Anchor 之间的关系,定义了不同业务实体之间的联系。每个 Link 连接两个或多个 Anchors,并可能包含与关系相关的属性。
  4. History(历史)

    • Anchor 模型支持历史数据的管理,通过在属性上增加时间戳来跟踪数据的变化。这种设计使得用户可以轻松地查看数据在不同时间点的状态。

Anchor 模型的设计原则

  1. 灵活性

    • Anchor 模型的设计非常灵活,允许根据需要添加或修改 Anchors 和 Links,从而快速适应业务变化。
  2. 去冗余

    • 通过将数据分解为多个 Anchors 和 Links,Anchor 模型减少了数据冗余,提高了数据的存储效率。
  3. 历史跟踪

    • 设计允许通过时间戳轻松追踪历史数据变化,支持历史分析和时间序列查询。

Anchor 模型的优缺点

优点:

  • 高灵活性 :适应快速变化的业务需求,易于扩展。
  • 简单直观 :数据模型清晰,易于理解和维护。
  • 历史数据管理 :方便地跟踪和分析历史数据变化。

缺点:

  • 复杂性管理 :随着业务的扩展,模型可能变得复杂,需要有效的管理和治理。
  • 性能考虑 :在某些情况下,频繁的连接操作可能影响查询性能。

应用场景

  • 动态数据环境 :特别适合于业务需求变化频繁、数据源多样化的环境。
  • 历史分析 :需要对历史数据进行深入分析和追踪的场景。
  • 复杂数据关系 :支持多维度和复杂关系的数据分析。

总结

Anchor 模型是一种灵活、可扩展的数据建模方法,适合现代企业在复杂和动态数据环境中的应用。通过将数据分解为 Anchors、Attributes 和 Links,Anchor 模型能够有效地支持数据整合和分析,为企业决策提供可靠的数据基础。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文