- 奥比教程
- 奥比 - 主页
- OBIEE-数据仓库
- OBIEE - 维度建模
- OBIEE - 架构
- OBIEE - 基础知识
- OBIEE - 组件
- OBIEE - 建筑
- OBIEE - 存储库
- OBIEE - 业务层
- OBIEE - 表示层
- OBIEE - 测试存储库
- OBIEE - 多个逻辑表
- OBIEE - 计算措施
- OBIEE - 维度层次结构
- OBIEE - 基于级别的测量
- OBIEE - 聚合
- OBIEE - 变量
- OBIEE - 仪表板
- OBIEE - 过滤器
- OBIEE - 视图
- OBIEE - 提示
- 奥比 - 安全
- OBIEE - 管理
- OBIEE 有用资源
- OBIEE - 问题解答
- OBIEE - 快速指南
- OBIEE - 有用的资源
- OBIEE - 讨论
OBIEE – 架构
Schema是整个数据库的逻辑描述。它包括所有类型记录的名称和描述,包括所有关联的数据项和聚合。与数据库非常相似,DW 也需要维护模式。数据库使用关系模型,而DW使用星型、Snowflake型和事实星座模式(银河模式)。
星型模式
在星型模式中,存在多个非规范化形式的维度表,这些维度表仅连接到一个事实表。这些表以逻辑方式连接以满足某些业务分析需求。这些架构是多维结构,用于使用 BI 报告工具创建报告。
星型模式中的维度包含一组属性,事实表包含所有维度和测量值的外键。
在上面的星型模式中,中心有一个事实表“Sales Fact”,并使用主键连接到 4 个维度表。维度表没有进一步规范化,这种表连接在 DW 中称为星型模式。
事实表还包含度量值 -dollar_sold 和units_sold。
Snowflake模式
在Snowflake模式中,有多个标准化形式的维度表,它们仅连接到一个事实表。这些表以逻辑方式连接以满足某些业务分析需求。
星型模式和Snowflake模式之间的唯一区别是维度表进一步规范化。规范化将数据拆分到其他表中。由于Snowflake模式的规范化,减少了数据冗余而不会丢失任何信息,因此变得易于维护并节省存储空间。
在上面的Snowflake模式示例中,产品和客户表被进一步规范化以节省存储空间。有时,当您执行需要直接处理规范化表中的行的查询时,它还会提供性能优化,因此它不会处理主维度表中的行,而是直接进入架构中的规范化表。
粒度
表中的粒度表示表中存储的信息的级别。数据的高粒度意味着数据处于或接近事务级别,具有更多的细节。低粒度意味着数据的信息量低。
事实表通常是在低粒度级别设计的。这意味着我们需要找到事实表中可以存储的最低级别的信息。在日期维度中,粒度级别可以是年、月、季度、期间、周和日。
定义粒度的过程包括两个步骤 -
- 确定要包含的尺寸。
- 确定各维度信息层次结构的放置位置。
缓慢变化的维度
缓慢变化的维度是指属性值随着时间的推移而变化。是DW中常用的概念之一。
例子
Andy 是 XYZ Inc. 的员工。他于 2015 年 7 月首次来到纽约市。员工查找表中的原始条目有以下记录 -
员工ID | 10001 |
---|---|
姓名 | 安迪 |
地点 | 纽约 |
后来,他搬到了加利福尼亚州洛杉矶。XYZ Inc. 现在应该如何修改其员工表以反映此更改?
这就是所谓的“缓慢变化的维度”概念。
有三种方法可以解决此类问题 -
解决方案1
新记录取代原始记录。没有任何旧记录的痕迹。
缓慢变化的维度,新的信息只是覆盖了原来的信息。换句话说,没有保留任何历史记录。
员工ID | 10001 |
---|---|
姓名 | 安迪 |
地点 | 加利福尼亚州洛杉矶 |
好处- 这是处理缓慢变化维度问题的最简单方法,因为不需要跟踪旧信息。
缺点- 所有历史信息都会丢失。
使用- 当 DW 不需要跟踪历史信息时,应使用解决方案 1。
解决方案2
一条新记录将输入到“员工”维度表中。因此,员工安迪被视为两个人。
一条新记录将添加到表中以表示新信息,并且原始记录和新记录都会出现。新记录有自己的主键,如下所示 -
员工ID | 10001 | 10002 |
---|---|---|
姓名 | 安迪 | 安迪 |
地点 | 纽约 | 加利福尼亚州洛杉矶 |
好处- 这种方法允许我们存储所有历史信息。
缺点- 表的大小增长得更快。当表的行数非常多时,表的空间和性能可能会成为一个问题。
使用- 当 DW 需要保留历史数据时,应使用解决方案 2。
解决方案3
修改“员工”维度中的原始记录以反映更改。
将有两列指示特定属性,一列指示原始值,另一列指示新值。还有一列指示当前值何时变为活动状态。
员工ID | 姓名 | 原地点 | 新地点 | 搬家日期 |
---|---|---|---|---|
10001 | 安迪 | 纽约 | 加利福尼亚州洛杉矶 | 2015年7月 |
优点- 这不会增加表的大小,因为新信息已更新。这使我们能够保留历史信息。
缺点- 当属性值多次更改时,此方法不会保留所有历史记录。
使用- 仅当 DW 需要保留历史更改信息时才应使用解决方案 3。
正常化
规范化是将表分解为冗余较少的较小表而不丢失任何信息的过程。因此,数据库规范化是组织数据库的属性和表以最小化数据冗余(重复数据)的过程。
标准化的目的
它用于消除某些类型的数据(冗余/复制)以提高一致性。
它通过以简化的形式保存与对象类型相对应的表,提供了最大的灵活性,以满足未来的信息需求。
它产生更清晰、可读的数据模型。
优点
- 数据的完整性。
- 增强数据一致性。
- 减少数据冗余和所需空间。
- 降低更新成本。
- 响应临时查询的最大灵活性。
- 减少每个块的总行数。
缺点
数据库查询性能缓慢,因为必须执行联接才能从多个标准化表中检索相关数据。
您必须了解数据模型才能在多个表之间执行正确的联接。
例子
在上面的示例中,绿色块内的表表示红色块内的表的标准化表。绿色块中的表冗余较少,行数也较少,而不会丢失任何信息。