OBIEE - 维度建模

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

维度建模总是使用事实和维度表.事实是数值,可以汇总和分析事实值.维度定义事实值的层次结构和描述.

维度表

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

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

示例

在以下维度表中,客户维度通常包括客户名称,地址,客户ID,性别,收入组,教育级别等等.


弗雷德史密斯

客户ID名称性别收入教育Religion
1Brian EdgeM234
2M351
3Sally JonesF173

事实表

事实表包含称为测量值的数值. Fact表有两种类型的列和减号;维度表的事实和外键.

Fact表中的度量有三种类型 :

  • 添加剂 : 可以在任何维度上添加的度量.

  • 非添加剂 : 无法在任何维度上添加的度量.

  • 半添加剂 : 可以在某些维度上添加的度量.

示例

时间ID产品ID客户ID已销售单位
41721
82132
8411

此事实表包含外键时间尺寸,产品尺寸,客户尺寸和出售的测量值单位.

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

常见事实是 : 去;销售单位数,保证金,销售收入等.维度表列出了我们想要分析数据的客户,时间,产品等因素.

现在,如果我们考虑上面的事实表和客户维度也会有产品和时间维度.鉴于此事实表和这三个维度表,我们可以提出以下问题:2010年向男性客户销售了多少手表?

维度和事实表之间的差异

维度表和事实表之间的功能差异在于,事实表包含我们要分析的数据,维度表包含允许我们查询它所需的信息.

聚合表

聚合表包含可以使用不同聚合函数计算的聚合数据.

聚合函数是一个函数,其中多行的值被组合在一起作为某些标准的输入,以形成更重要的含义或度量的单个值.

常见的聚合函数包括 :

  • 平均()

  • 计数()

  • 最大值()

  • 中位数()

  • 最低()

  • 模式()

  • Sum()

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

示例

您使用聚合数据保存表格,例如每年(1行),每季度(4行),每月(12行),现在您必须对数据进行比较,例如每年仅处理1行.但是在未聚合的表中,将处理所有行.

MIN返回给定列中的最小值
MAX返回给定列中的最大值
SUM返回给定列中数值的总和
AVG返回给定列的平均值
COUNT返回总数给定列中的值的数量
COUNT(*)返回表中的行数

从员工中选择平均值(薪水)其中title ='开发者'.此声明将返回标题等于"开发人员"的所有员工的平均工资.

可以在数据库级别应用聚合.您可以创建聚合并将其保存在数据库中的聚合表中,也可以在报告级别动态应用聚合.

注意 : 如果在数据库级别保存聚合,则可以节省时间并提供性能优化.