用例 7:创建具有层次结构的自定义维

您可以通过定义基于父子级别的层次结构来创建具有层次结构的维。

预构建的 SCM –销售订单主题区域不包含所需的维–交易方层次结构维维属性和层次级别。在此用例中,您可以将文件夹维 - 交易方层次结构维添加到 SCM –销售订单预构建主题区域。此文件夹包含 Accounts Level Hierarchy(账户级别层次结构)层次结构,其中包含四个级别以及一个详细的最低级别。使用交易方 ID 键将具有层次结构的自定义维联接到预构建的事实 - OM 销售订单事实。

此用例需要订阅 Fusion SCM Analytics 。但是,您可以将本用例中介绍的概念应用于任何其他 Fusion Data Intelligence 订阅。该用例可以参考 Autonomous AI Lakehouse 预构建表和同义词,并模拟定制数据库表和视图。如果您已激活指定的 Fusion Data Intelligence 订阅,则可以使用提供的示例。建议将示例对象替换为您自己的定制 Autonomous AI Lakehouse 对象,例如定制表、实体化视图、视图、定制同义词或数据扩充数据集同义词。

使用以下命令完成此任务:
  • 预构建的主题区域:SCM –销售订单
确保参考上载语义模型扩展用例的示例并完成以下先决条件:
  • 创建一个名为 MySandbox5Mar25 的沙盒。请参阅创建沙盒。或者,编辑“语义模型扩展”页上的现有沙盒;例如,单击 MySandbox5Mar25 沙盒。
  • 使用此 SQL 脚本生成示例维视图 FDI_X_PARTY_HIERARCHY_D_V:
    CREATE OR REPLACE FORCE EDITIONABLE VIEW "OAX_USER"."FDI_X_PARTY_HIERARCHY_D_V" ("PARTY_ID", "LVL1", "LVL2", "LVL3", "LVL4", "LVL_DETAIL") DEFAULT COLLATION "USING_NLS_COMP"  AS 
      (
    SELECT DISTINCT
    PARTY_ID,
    NVL(COUNTRY,'~No Value~') as LVL1,
    NVL(STATE,'~No Value~') as LVL2,
    NVL(CITY,'~No Value~') as LVL3,
    NVL(POSTAL_CODE,'~No Value~') as LVL4,
    NVL(PARTY_NAME,'~No Value~') as LVL_DETAIL
    FROM
    OAX$OAC.DW_PARTY_D
    where (CUSTOMER_FLAG <> 'N' or CUSTOMER_FLAG is null)
    );
  • 使用以下 SQL 脚本为 OAX$OAC 方案授予对 FDI_X_PARTY_HIERARCHY_D_V 视图的语义模型访问权限:
    GRANT SELECT ON "OAX_USER"."FDI_X_PARTY_HIERARCHY_D_V" TO "OAX$OAC";
  • 使用以下 SQL 脚本验证数据是否按预期从示例加载:
    SELECT * FROM OAX_USER.FDI_X_PARTY_HIERARCHY_D_V;
  • 通过在 SQL Developer Client 的右窗格中的“SQL Worksheet(SQL 工作表)”下输入此 SQL 脚本,确认外键是唯一的,这样可以避免由于粒度错误而导致可能重复的结果不准确:
    SELECT PARTY_ID, COUNT(*)
    FROM FDI_X_PARTY_HIERARCHY_D_V
    GROUP BY PARTY_ID
    HAVING COUNT(*) > 1;

将自定义详情添加到语义模型

您可以编辑逻辑星型,以定义自治数据仓库对象、属性、显示标签、键和层次结构。

在此步骤中,您可以编辑事实 - OM 销售订单逻辑星形,以添加引用自治数据仓库对象 FDI_X_PARTY_HIERARCHY_D_V 的自定义维 Dim –交易方层次结构维,并定义一个名为账户层层次结构的多层层次结构。对于每个级别,用例定义唯一的主键和显示属性。
  1. 在“语义模型扩展”页上,单击 MySandbox5Mar25 沙盒。
  2. 执行操作中,依次单击管理逻辑星编辑逻辑星,选择开箱即用,选择 SCM –销售订单主题区域,选择实际– OM 销售订单,然后单击下一步
  3. 在“逻辑星形:事实”页上,单击管理维,然后单击添加维

    显示“管理维”值列表的“逻辑星形:事实”页

  4. 在“添加维”页的向导步骤 1 中,在方案中选择 OAX_USER ,在对象中选择 FDI_X_PARTY_HIERARCHY_D_V ,并将维名称重命名为交易方层次结构维。选中 PARTY_ID 源列的用于关键字复选框,选中 LVL2LVL_DETAILLVL3LVL4LVL1PARTY_ID 源列的添加属性复选框,然后单击下一步

    “添加维”页上的向导步骤 1

  5. 选中将层次添加到主题区域复选框,在名称中输入帐户级别层次,然后将每个属性拖动到其对应级别。

    向导的“添加维”页上的步骤 2,其中显示如何组合层次

  6. 对于每个级别,单击该级别,单击铅笔图标,然后设置主键和显示属性。

    注意:

    您可能希望为每个级别使用内部 ID/整数键(如果可用)。对于详细信息级别,此关键字的此用例使用方 ID。


    a

  7. 单击完成

将物理列添加到预生成事实以公开要连接的外键

您可以扩展预生成事实以公开将用作键的物理列,从而在逻辑星形中联接新的定制维。您必须为逻辑列指定唯一名称。

在此步骤中,您扩展了事实 - OM 销售订单,以公开实际列 BILL_TO_PARTY_ID,将其用作联接到新的自定义维 Dim –交易方层次结构维的键。BILL_TO_PARTY 被指定为唯一名称 Party ID
  1. 在“语义模型扩展”页上,单击 MySandbox5Mar25 沙盒。
  2. 执行操作中,依次单击管理逻辑星编辑逻辑星,选择开箱即用,选择 SCM –销售订单主题区域,选择实际– OM 销售订单,然后单击下一步
  3. 在“逻辑星形:事实”页上,右键单击事实 - OM 销售订单,然后单击管理扩展

    显示“事实 - 订单管理销售订单”的“逻辑星形:事实”页面的“管理扩展”选项

  4. 在“添加列”页上,单击添加物理列,然后在选择物理列中,从 Fact_DW_OM_FULFILLMENT_CF 中选择 BILL_TO_PARTY_ID ,然后单击确定

    “选择物理列”页面

  5. 逻辑列下,输入交易方 ID 作为唯一名称,然后单击完成

    在逻辑列下输入唯一名称

将自定义维层次结构联接到预生成事实

通过定义联接类型、联接条件和上下文级别,可以将定制维层次联接到预生成事实。虽然可以定义复杂联接,但尽可能使用标准联接。

在此步骤中,使用每个表中的交易方 ID 键,在预构建的事实 - OM 销售订单事实上定义到自定义维层次结构维 - 交易方层次结构维的标准内部联接。您可以将内容级别设置为详细信息
  1. 在“语义模型扩展”页上,单击 MySandbox5Mar25 沙盒。
  2. 执行操作中,依次单击管理逻辑星编辑逻辑星,选择开箱即用,选择 SCM –销售订单主题区域,选择实际– OM 销售订单,然后单击下一步
  3. 在“逻辑星形:数值”页面上,从自定义维层次拖动到预生成数值。

    “Logical Star:Fact(逻辑星形:事实)”页,其中显示了如何通过拖动将定制维层次联接到预生成的事实

  4. 在“联接”对话框中,基于交易方 ID (添加了新物理列)和交易方 ID (来自自定义维层次结构)进行联接。此示例使用内部联接。其他人可能需要左(或其他联接类型)。将上下文级别设置为详细信息,然后单击完成

    “联接”对话框

  5. 以图形模式查看联接。

    以图形模式查看联接

  6. 单击“Logical Star:Fact(逻辑星形:事实)”页面上的向后箭头以导航回“Sandbox:MySandbox5Mar2025”页面。

在语义模型中呈现定制维层次

您可以修改主题区域以显示新的自定义维属性和层次级别。

系统将维表示为包含主题区域中的列的文件夹,并表示自定义维文件夹底部的层次级别。工作簿中使用的层次结构级别可以展开和折叠以显示或隐藏详细行。

在此步骤中,您将修改 SCM –销售订单主题区域,以显示新的自定义维–交易方层次结构维文件夹,其中包含具有四个级别(级别 1、级别 2、级别 3、级别 4)和最低详细级别的自定义层次结构客户级别层次结构

  1. 导航到 MySandbox5Mar25 页面,单击执行操作,单击管理主题区域,选择修改主题区域,选择 SCM 销售订单主题区域,然后单击下一步
  2. 在向导的步骤 1 的“修改主题区域”页上,查看详细信息,然后单击下一步
  3. 在向导的步骤 2 中,单击管理元素,单击管理新定制,然后在“添加主题区域”中选择层次和维元素,然后单击添加

    显示所选层次和维元素的“添加主题区域”对话框

  4. 复查所选元素并单击完成

    查看自定义层次结构“客户层层次结构”中的选定层次结构和维元素

应用和发布自定义

您可以应用更改来编译沙盒,并确保沙盒没有错误。

然后,使用“Activity(活动)”选项卡调试、解决错误并确认“Apply Changes(应用更改)”操作完成且成功。最后,将更改合并到主沙盒并发布主用户扩展,以便与使用者共享新扩展。

在此步骤中,您将应用更改,使用“活动”选项卡监视状态,将 MySandbox5Mar25 沙盒合并到“主”沙盒,然后发布主用户扩展。

  1. 在“语义模型扩展”页上,将鼠标悬停在 MySandbox5Mar25 沙盒上以查看操作,然后单击应用更改
  2. 单击“活动”选项卡以监视“活动”页上的应用更改任务。
  3. 成功应用更改后,单击“语义模型扩展”页上的发布模型
  4. 在“发布模型”中,在“用户扩展”中,选择 MySandbox5Mar25 ,在“安全配置”中,选择全部
  5. 单击发布
  6. 在“语义模型扩展”页上,单击“活动”选项卡以监视发布定制任务。
    请参阅应用更改发布模型

验证结果

验证您的自定义在语义模型中是否可见。

  1. Fusion Data Intelligence 控制台上,单击转至主页
  2. Oracle Analytics 主页上,单击创建,单击工作簿,在“添加数据”中,选择 SCM –销售订单,然后单击添加到工作簿
  3. 验证默认情况下具有层次的新维是否显示在文件夹的底部。

    具有层次的新维

  4. 将级别 1 和度量添加到可视化。

    层次结构的第 1 层

  5. 展开和折叠级别并确认它们按预期工作。

    展开和折叠的层次结构级别

  6. 验证维字段是否也可供使用(不展开或折叠)。

    可供使用的维字段

  7. 查看报告。

    显示自定义层次结构详细信息的报表