Obiee 简明教程
OBIEE – Dimensional Modeling
维度建模提供了一组方法和概念,用于 DW 设计。根据 DW 顾问 Ralph Kimball 的说法,维度建模是一种数据库设计技术,旨在支持数据仓库中的最终用户查询。它以可理解性和性能为导向。他认为,虽然面向事务的 ER 对于事务捕获非常有用,但在最终用户交付中应避免这种情况。
维度建模始终使用事实表和维度表。事实是可以在事实值上汇总和分析的数值。维度定义层次结构和对事实值的描述。
Dimension Table
维度表存储描述事实表中对象的属性。维度表具有唯一标识每个维度行的主键。此键用于将维度表与事实表关联。
维度表通常是非规范化的,因为它们不是为了执行事务而创建的,而仅仅用于对数据进行详细分析。
Fact Tables
事实表包含被称为度量的数值。事实表具有两种类型的列 - 事实和维度表的外国键。
事实表中的度量分为三种类型:
-
Additive − 可以跨任何维度相加的度量。
-
Non-Additive − 无法跨任何维度相加的度量。
-
Semi-Additive − 可以跨某些维度相加的度量。
Aggregate Table
聚合表包含可通过使用不同的聚合函数计算的聚合数据。
aggregate function 是一个函数,在该函数中,多行值按特定条件合并为一个输入,以形成更重要意义或测量值的单个值。
常见的聚合函数包括 −
-
Average()
-
Count()
-
Maximum()
-
Median()
-
Minimum()
-
Mode()
-
Sum()
这些聚合表用于性能优化,以在数据仓库中运行复杂查询。
Example
您将聚合数据(如年(1 行)、季度(4 行)、月(12 行))保存到表中,现在您必须对数据进行比较,例如,每年只处理 1 行。然而,在未聚合表格中,所有行都将被处理。
MIN |
返回给定列中的最小值 |
MAX |
返回给定列中的最大值 |
SUM |
返回给定列中数值的总和 |
AVG |
返回给定列的平均值 |
COUNT |
返回给定列中的总值 |
COUNT (*) |
返回表中的行数 |
从 where title = ‘developer’ 的 employee 中选择 Avg (salary)。此语句将返回所有职称为“Developer”的员工的平均工资。
可在数据库级别应用聚合。您可以在数据库中创建聚合并将它们保存在聚合表中,也可以在报告级别动态地应用聚合。
Note − 如果在数据库级别保存聚合,它将节省时间并提供性能优化。