Obiee 简明教程

OBIEE – Dimensional Modeling

维度建模提供了一组方法和概念,用于 DW 设计。根据 DW 顾问 Ralph Kimball 的说法,维度建模是一种数据库设计技术,旨在支持数据仓库中的最终用户查询。它以可理解性和性能为导向。他认为,虽然面向事务的 ER 对于事务捕获非常有用,但在最终用户交付中应避免这种情况。

维度建模始终使用事实表和维度表。事实是可以在事实值上汇总和分析的数值。维度定义层次结构和对事实值的描述。

Dimension Table

维度表存储描述事实表中对象的属性。维度表具有唯一标识每个维度行的主键。此键用于将维度表与事实表关联。

维度表通常是非规范化的,因为它们不是为了执行事务而创建的,而仅仅用于对数据进行详细分析。

Example

在以下维度表中,客户维度通常包括客户姓名、地址、客户 ID、性别、收入组、教育水平等信息。

Customer ID

Name

Gender

Income

Education

Religion

1

Brian Edge

M

2

3

4

2

Fred Smith

M

3

5

1

3

Sally Jones

F

1

7

3

Fact Tables

事实表包含被称为度量的数值。事实表具有两种类型的列 - 事实和维度表的外国键。

事实表中的度量分为三种类型:

  1. Additive − 可以跨任何维度相加的度量。

  2. Non-Additive − 无法跨任何维度相加的度量。

  3. Semi-Additive − 可以跨某些维度相加的度量。

Example

Time ID

Product ID

Customer ID

Unit Sold

4

17

2

1

8

21

3

2

8

4

1

1

此事实表包含时间维度、产品维度、客户维度和度量值单位售出的外键。

假设一家公司向客户销售产品。每次销售都是在公司内发生的事实,而事实表用于记录这些事实。

一般事实是对外销售的数量、利润、销售收入等。维度表列出一些因素(如客户、时间、产品等),按这些因素可对数据进行分析。

现在,如果我们考虑上述事实表和客户维度,那么也会有产品和时间维度。给定了此事实表和这三个维度表,我们可以询问诸如:2010 年有多少块手表卖给了男性客户?

Difference between Dimension and Fact Table

维度表和事实表的功能区别在于,事实表保存我们想要分析的数据,而维度表保存允许我们对其进行查询所需的信息。

Aggregate Table

聚合表包含可通过使用不同的聚合函数计算的聚合数据。

aggregate function 是一个函数,在该函数中,多行值按特定条件合并为一个输入,以形成更重要意义或测量值的单个值。

常见的聚合函数包括 −

  1. Average()

  2. Count()

  3. Maximum()

  4. Median()

  5. Minimum()

  6. Mode()

  7. Sum()

这些聚合表用于性能优化,以在数据仓库中运行复杂查询。

Example

您将聚合数据(如年(1 行)、季度(4 行)、月(12 行))保存到表中,现在您必须对数据进行比较,例如,每年只处理 1 行。然而,在未聚合表格中,所有行都将被处理。

MIN

返回给定列中的最小值

MAX

返回给定列中的最大值

SUM

返回给定列中数值的总和

AVG

返回给定列的平均值

COUNT

返回给定列中的总值

COUNT (*)

返回表中的行数

从 where title = ‘developer’ 的 employee 中选择 Avg (salary)。此语句将返回所有职称为“Developer”的员工的平均工资。

可在数据库级别应用聚合。您可以在数据库中创建聚合并将它们保存在聚合表中,也可以在报告级别动态地应用聚合。

Note − 如果在数据库级别保存聚合,它将节省时间并提供性能优化。