OBIEE – 架构模式



架构模式是对整个数据库的逻辑描述。它包括所有类型记录的名称和描述,包括所有关联的数据项和聚合。与数据库类似,数据仓库也需要维护架构模式。数据库使用关系模型,而数据仓库使用星型、雪花形和事实星座架构模式(星系架构模式)。

星型架构模式

在星型架构模式中,有多个以非规范化形式存在的维度表,它们只连接到一个事实表。这些表以逻辑方式连接,以满足某些用于分析目的的业务需求。这些架构模式是多维结构,用于使用 BI 报表工具创建报表。

星型架构模式中的维度包含一组属性,而事实表包含所有维度和度量值的外部键。

Star Schema

在上面的星型架构模式中,中间有一个事实表“销售事实”,并使用主键连接到 4 个维度表。维度表没有进一步规范化,这种表的连接在数据仓库中被称为星型架构模式。

事实表还包含度量值 - 销售额和销售数量。

雪花形架构模式

在雪花形架构模式中,有多个以规范化形式存在的维度表,它们只连接到一个事实表。这些表以逻辑方式连接,以满足某些用于分析目的的业务需求。

星型架构模式和雪花形架构模式之间的唯一区别在于维度表是否进一步规范化。规范化将数据拆分为其他表。由于雪花形架构模式中的规范化,数据冗余减少了,而不会丢失任何信息,因此易于维护并节省存储空间。

Snowflakes Schema

在上面的雪花形架构模式示例中,产品和客户表进一步规范化以节省存储空间。有时,当您执行需要直接在规范化表中处理行的查询时,它还会提供性能优化,因此它不会处理主维度表中的行,而是直接进入架构模式中的规范化表。

粒度

表中的粒度表示存储在表中的信息级别。高粒度数据意味着数据处于或接近事务级别,具有更多细节。低粒度意味着数据的信息级别较低。

事实表通常设计为低粒度级别。这意味着我们需要找到可以存储在事实表中的最低信息级别。在日期维度中,粒度级别可以是年、月、季度、期间、周和日。

定义粒度的过程包括两个步骤 -

  • 确定要包含的维度。
  • 确定放置每个维度信息层次结构的位置。

缓慢变化维度

缓慢变化维度指的是属性值随时间变化。它是数据仓库中的常见概念之一。

示例

Andy 是 XYZ Inc. 的员工。他于 2015 年 7 月首次在纽约市工作。员工查找表中的原始条目具有以下记录 -

员工 ID 10001
姓名 Andy
位置 纽约

在之后的某个日期,他搬到了加利福尼亚州洛杉矶。XYZ Inc. 现在应该如何修改其员工表以反映此更改?

这被称为“缓慢变化维度”概念。

有三种方法可以解决此类问题 -

解决方案 1

新记录替换原始记录。旧记录没有痕迹。

缓慢变化维度,新信息只需覆盖原始信息。换句话说,不保留历史记录。

员工 ID 10001
姓名 Andy
位置 加利福尼亚州洛杉矶
  • 优点 - 这是处理缓慢变化维度问题的最简单方法,因为无需跟踪旧信息。

  • 缺点 - 所有历史信息都会丢失。

  • 用途 - 当数据仓库不需要跟踪历史信息时,应使用解决方案 1。

解决方案 2

在员工维度表中输入新记录。因此,员工 Andy 被视为两个人。

向表中添加新记录以表示新信息,并且原始记录和新记录都将存在。新记录获得自己的主键,如下所示 -

员工 ID 10001 10002
姓名 Andy Andy
位置 纽约 加利福尼亚州洛杉矶
  • 优点 - 此方法允许我们存储所有历史信息。

  • 缺点 - 表的大小增长更快。当表的行数非常多时,空间和表的性能可能成为问题。

  • 用途 - 当数据仓库需要保留历史数据时,应使用解决方案 2。

解决方案 3

修改员工维度中的原始记录以反映更改。

将有两列指示特定属性,一列指示原始值,另一列指示新值。还将有一列指示当前值何时生效。

员工 ID 姓名 原始位置 新位置 搬迁日期
10001 Andy 纽约 加利福尼亚州洛杉矶 2015 年 7 月
  • 优点 - 由于更新了新信息,因此不会增加表的大小。这使我们能够保留历史信息。

  • 缺点 - 当属性值更改多次时,此方法不会保留所有历史记录。

  • 用途 - 仅当数据仓库需要保留历史更改信息时,才应使用解决方案 3。

规范化

规范化是将表分解成较少冗余的较小表的过程,而不会丢失任何信息。因此,数据库规范化是组织数据库的属性和表的过程,以最大程度地减少数据冗余(重复数据)。

规范化的目的

  • 它用于消除某些类型的数据(冗余/复制)以提高一致性。

  • 它通过使与对象类型对应的表保持其简化形式,提供了最大的灵活性来满足未来的信息需求。

  • 它生成更清晰易读的数据模型。

优点

  • 数据完整性。
  • 增强数据一致性。
  • 减少数据冗余和所需的空间。
  • 降低更新成本。
  • 在响应临时查询方面具有最大的灵活性。
  • 减少每个块的总行数。

缺点

数据库查询性能缓慢,因为必须执行联接以从多个规范化表中检索相关数据。

您必须了解数据模型才能在多个表之间执行正确的联接。

示例

Purpose of Normalization

在上面的示例中,绿色块内的表表示红色块内表的规范化表。绿色块中的表冗余度较低,并且行数也较少,而不会丢失任何信息。

广告