OBIEE – 业务层

业务层定义对象的业务或逻辑模型以及它们在物理层中的业务模型和模式之间的映射。它简化了物理模式并将用户业务需求映射到物理表。

OBIEE 系统管理工具的业务模型和映射层可以包含一个或多个业务模型对象。业务模型对象定义业务模型定义以及业务模型从逻辑表到物理表的映射。

业务模型用于简化模式结构并将用户的业务需求映射到物理数据源。它涉及在业务模型中创建逻辑表和列。每个逻辑表可以有一个或多个物理对象作为源。

逻辑表有两种类别:事实和维度。逻辑事实表包含进行分析的度量,逻辑维度表包含有关 Schema 中的度量和对象的信息。

使用 OBIEE 管理工具创建新存储库时,定义物理层后,创建连接并识别外键。下一步是创建业务模型并映射存储库的 BMM 层。

定义业务层所涉及的步骤 −

  • 创建业务模型
  • 检查逻辑连接
  • 检查逻辑列
  • 检查逻辑表源
  • 手动重命名逻辑表对象
  • 使用重命名向导重命名逻辑表对象并删除不必要的逻辑对象
  • 创建度量(聚合)

在存储库中创建业务层

要在存储库中创建业务层,请右键单击 → 新建业务模型 → 输入业务模型的名称,然后单击确定。 您还可以根据需要添加此业务模型的描述。

创建业务层 1 创建业务层 2

BMM 层中的逻辑表和对象

OBIEE 存储库中的逻辑表存在于业务模型和映射 BMM 层中。 业务模型图应至少包含两个逻辑表,您需要定义它们之间的关系。

每个逻辑表应具有一个或多个逻辑列以及一个或多个与之关联的逻辑表源。您还可以更改逻辑表名称、重新排序逻辑表中的对象以及使用主键和外键定义逻辑连接。

在 BMM 层下创建逻辑表

在 BMM 层中创建逻辑表/对象有两种方法 −

第一种方法是将物理表拖到业务模型,这是定义逻辑表的最快方法。当您将表从物理层拖到 BMM 层时,它还会自动保留连接和键。如果您愿意,可以更改逻辑表中的连接和键,这不会影响物理层中的对象。

选择要添加到业务模型层的物理层下的物理表/别名表,并将这些表拖到 BMM 层下。

这些表称为逻辑表,列称为业务模型和映射层中的逻辑对象。

在 BMM Layer1 下创建逻辑表

第二种方法是手动创建逻辑表。在业务模型和映射层中,右键单击业务模型 → 选择新对象 → 逻辑表 → 出现逻辑表对话框。

转到"常规"选项卡 → 输入逻辑表的名称 → 键入表的描述 → 单击"确定"。

在 BMM Layer2 下创建逻辑表

创建逻辑列

当您将表从物理层拖到业务模型层时,BMM 层中的逻辑列会自动创建。

如果逻辑列是主键,则此列显示为键图标。如果该列具有聚合功能,则显示为 sigma 图标。您还可以在业务模型和映射层中重新排序逻辑列。

创建逻辑列

在 BMM 层中,右键单击逻辑表 → 选择新建对象 → 逻辑列 → 将出现逻辑列对话框,单击常规选项卡。

为逻辑列输入名称。业务模型和逻辑表的名称出现在列名称正下方的"属于表"字段中,然后单击"确定"。

创建逻辑列

您还可以在逻辑列上应用聚合。单击"聚合"选项卡,然后从下拉列表中选择"聚合规则",然后单击"确定"。

在列上应用聚合函数后,逻辑列图标将更改为显示已应用聚合规则。

应用聚合函数

您还可以在表中移动或复制逻辑列 −

在 BMM 层中,您可以选择多个要移动的列。在"移动列的来源"对话框中的"操作"区域中,选择一个操作。如果选择"忽略",则不会在表的"来源"文件夹中添加任何逻辑源。

如果单击"新建",则会在"来源"文件夹中创建带有逻辑列的逻辑源的副本。如果从下拉列表中选择"使用现有"选项,则必须从表的"来源"文件夹中选择一个逻辑源。

创建逻辑复杂连接/逻辑外键

BMM 层中的逻辑表使用逻辑连接相互连接。基数是逻辑连接中的关键定义参数之一。基数关系一对多意味着第一个逻辑维度表中的每一行在第二个逻辑表中都有 0、1 或多行。

自动创建逻辑连接的条件

当您将物理层的所有表拖到业务模型层时,Repository 中会自动创建逻辑连接。这种情况很少发生,只有在简单业务模型的情况下才会发生。

当逻辑连接与物理连接相同时,它们会自动创建。BMM 层中的逻辑连接以两种方式创建 −

  • 业务模型图(设计存储库时已介绍)
  • 连接管理器

BMM 层中的逻辑连接不能使用表达式或列来指定,而物理层中则显示定义物理连接的表达式和列名。

使用连接管理器工具创建逻辑连接/逻辑外键

首先让我们看看如何使用连接管理器创建逻辑外键。

在管理工具工具栏中,转到管理 → 连接。出现连接管理器对话框 → 转到操作选项卡 → 新建 → 逻辑外键。

现在,在"浏览"对话框中,双击一个表 → 出现"逻辑外键"对话框 → 输入外键的名称 → 从对话框的"表"下拉列表中,选择外键引用的表 → 选择左表中外键引用的列 → 选择右表中组成外键列的列 → 从"类型"下拉列表中选择连接类型。要打开表达式生成器,请单击"表达式"窗格右侧的按钮 → 表达式显示在"表达式"窗格中 → 单击"确定"保存工作。

使用连接管理器创建逻辑复杂连接

与使用逻辑外键相比,建议在业务模型和映射层中使用逻辑复杂连接。

在管理工具工具栏中,转到管理 → 连接 → 出现连接管理器对话框 → 转到操作 → 单击新建 → 逻辑复杂连接。

它将打开一个逻辑连接对话框 → 为复杂连接键入一个名称 → 在对话框左侧和右侧的表下拉列表中,选择复杂连接引用的表 → 从类型下拉列表中选择连接类型 → 单击确定。

注意 − 您还可以从下拉列表中将表定义为驱动表。当表大小过大时,这可用于性能优化。如果表大小较小(少于 1000 行),则不应将其定义为驱动表,因为这会导致性能下降。

维度和层次级别

逻辑维度存在于 OBIEE 存储库的 BMM 和表示层中。使用层次结构创建逻辑维度允许您定义随维度变化的聚合规则。它还提供了对分析和仪表板中的图表和表格的向下钻取选项,并定义聚合源的内容。

使用层次级别创建逻辑维度

以离线模式打开存储库 → 转到文件 → 打开 → 离线 → 选择存储库 .rpd 文件并单击打开 → 输入存储库密码 → 单击确定。

下一步是创建逻辑维度和逻辑级别。

右键单击 BMM 层中的业务模型名称 → 新建对象 → 逻辑维度 → 具有基于级别的层次结构的维度。它将打开对话框 → 输入名称 → 单击确定。

逻辑维度

要创建逻辑级别,请右键单击逻辑维度 → 新建对象 → 逻辑级别。

逻辑维度新对象

输入逻辑级别的名称,例如:Product_Name

如果此级别为总计级别,请选中复选框,系统将默认将此级别的元素数量设置为 1 并单击确定。

如果希望逻辑级别向上滚动到其父级,请选中支持向上滚动到父元素复选框并单击确定。

如果逻辑级别不是总计级别且不向上滚动,请不要选中任何复选框并单击确定。

逻辑级别

父子层次结构

您还可以按照以下步骤在逻辑级别中添加父子层次结构 −

要定义子逻辑级别,请单击浏览对话框中的添加,选择子逻辑级别,然后单击确定。

您还可以右键单击逻辑级别 → 新建对象 → 子级别。

父子层次结构

输入子级别的名称 → 确定。您可以重复此操作,根据需要为所有逻辑列添加多个子级别。您还可以以类似的方式添加时间和区域层次结构。

现在将表的逻辑列添加到逻辑级别 → 在 BMM 层中选择逻辑列并将其拖动到要映射到的逻辑级别子名称。同样,您可以拖动逻辑表的所有列来创建父子层次结构。

创建子级别时,可以通过双击逻辑级别进行检查,它会显示在该级别的子级别列表下。您可以使用此框顶部的"+"或"X"选项添加或删除子级别。

子级

向事实表添加计算

双击逻辑事实表中的列名 → 转到"聚合"选项卡并从下拉列表中选择"聚合"函数 → 单击"确定"。

向事实表添加计算

度量表示可添加的数据,例如总收入或总数量。单击顶部的"保存"选项以保存存储库。

可以使用各种聚合函数,如 Sum、Average、Count、Max、Min 等。