用例 5:添加 Degen 自定义事实

可以添加包含可聚合度量和描述性属性的退化 (degen) 定制事实,并使用定义的键将退化定制事实联接到预生成的维。

预构建的 SCM –销售订单主题区域不包含所需的事实–节假日日历度量和 Dim –事实–节假日日历– degendim 属性。在此用例中,您将实际 - 节假日日历和实际 - 节假日日历 - 退伍军人文件夹添加到 SCM - 销售订单预构建的主题区域中。Fact – Holiday Calendar 文件夹包含可聚合的度量。Dim – Fact – Holiday Calendar – degendim 文件夹包含描述性属性。使用日期关键字将退化自定义事实联接到预构建的维 - 数据公历。

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

使用以下命令完成此任务:
  • SCM –销售订单预构建主题区域
确保参考上载语义模型扩展用例的示例并完成以下先决条件:
  • 创建一个名为 MySandbox5Mar25 的沙盒。请参阅创建沙盒。或者,编辑“语义模型扩展”页上的现有沙盒;例如,单击 MySandbox5Mar25 沙盒。
  • 使用示例文件 FDI_X_HOLIDAY_CALENDAR_D.sql 或 FDI_X_HOLIDAY_CALENDAR_D.sql 在与 Fusion Data Intelligence 实例关联的自治数据仓库中创建假日维表 FDI_X_HOLIDAY_CALENDAR_D。
  • 使用此 SQL 脚本创建示例维视图 FDI_X_HOLIDAY_CALENDAR_F_V:
    CREATE OR REPLACE FORCE EDITIONABLE VIEW "OAX_USER"."FDI_X_HOLIDAY_CALENDAR_F_V" ("CALENDAR_DATE", "HOLIDAY", "BUSINESS_DAY", "TODATE_BUSINESS_DAYS", "MONTH_BUSINESS_DAYS") DEFAULT COLLATION "USING_NLS_COMP"  AS 
      (
      SELECT 
      CALENDAR_DATE,
      HOLIDAY,
      BUSINESS_DAY,
      SUM(BUSINESS_DAY) OVER (PARTITION BY TO_CHAR(CALENDAR_DATE,'MM-YYYY') ORDER BY CALENDAR_DATE) AS TODATE_BUSINESS_DAYS,
      SUM(BUSINESS_DAY) OVER (PARTITION BY TO_CHAR(CALENDAR_DATE,'MM-YYYY')) AS MONTH_BUSINESS_DAYS
      FROM
      (
      SELECT
      d.CALENDAR_DATE,
      d.DAY_LOCALE_NAME,
      c.HOLIDAY,
      CASE WHEN DAY_LOCALE_NAME NOT IN ('Saturday','Sunday') AND HOLIDAY IS NULL THEN 1 ELSE 0 END AS BUSINESS_DAY
      FROM DW_DAY_D d
      LEFT JOIN
      FDI_X_HOLIDAY_CALENDAR_D c
      ON c.COL_DATE = d.CALENDAR_DATE
      )
      );
  • 使用以下 SQL 脚本为 OAX$OAC 方案授予对 FDI_X_HOLIDAY_CALENDAR_F_V 视图的语义模型访问权限:
    GRANT SELECT ON "OAX_USER"."FDI_X_HOLIDAY_CALENDAR_F_V" TO "OAX$OAC";
  • 使用以下 SQL 脚本验证数据是否按预期从示例加载:
    SELECT * FROM FDI_X_HOLIDAY_CALENDAR_F_V
    WHERE HOLIDAY IS NOT NULL;

将具有 Degen 属性的事实添加到语义模型

您可以创建逻辑星形,以定义自治数据仓库对象、退化属性、事实度量、显示标签、键、聚合规则和内容级别。

在此步骤中,您将创建一个逻辑星形来定义自定义事实 Fact – Holiday Calendar ,并隐式创建 Dim – Fact – Holiday Calendar – degendim 。此自定义事实参考自治数据仓库对象 FDI_X_HOLIDAY_CALENDAR_F_V 。
  1. 在“语义模型扩展”页上,单击 MySandbox5Mar25 沙盒。
  2. 在执行操作中,依次单击管理逻辑星和创建逻辑星,然后单击下一步。
  3. 在“逻辑星形:事实”页上,单击添加事实。
  4. 在向导的步骤 1 的“添加事实”页上,在方案中选择 OAX_USER ,在对象中选择 FDI_X_HOLIDAY_CALENDAR_F_V ,将事实名称重命名为实–节假日日历。按如下所示选中适用的复选框,然后单击下一步。
    • 选择退化属性 -HOLIDAY
    • Select Fact(选择事实) -TODATE_BUSINESS_DAYS、MONTH_BUSINESS_DAYS 和 BUSINESS_DAY。
    • 用于关键字 – CALENDAR_DATE


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

  5. 在向导的步骤 2 中,按如下方式设置聚合规则:
    事实列 聚合规则
    考核工作日 (NUMERIC) 最大值
    月工作日 (NUMERIC) 平均值
    营业日 (NUMERIC) 总和


    “添加事实”页上的向导步骤 2

  6. 单击内容级别图标,按如下方式设置内容级别,单击确定,然后单击完成。
    维 级别
    格里历 日


    公历维及其内容层,日

将定制事实与 Degen 属性联接到预生成的维

您可以使用自定义退化事实中定义的外键添加预构建维并将其联接到自定义退化事实。

在此步骤中,您将添加预构建的维 Dim – Data Gregorian Calendar ,然后使用自定义退化事实中定义的外键 CALENDAR_DATE 将其联接到自定义退化事实 Dim – Fact – Holiday Calendar 。
  1. 在“逻辑星形:事实”页上,单击管理维。

    显示“管理维”按钮的“逻辑星形:事实”页

  2. 从管理维值列表中,单击添加现有维,然后在“添加表”中,选择维 - 日期公历,然后单击确定。

    显示“Dim – Date Gregorian Calendar”的“添加表”对话框

  3. 在“逻辑星形:事实”页上,将自定义事实(事实 - 节假日日历)圆拖动到自定义维 ( Dim - Date Gregorian Calendar ) 圆以打开“联接”对话框。在“联接”中,选择内部作为联接类型,单击添加联接条件以添加如下内容,然后单击完成:
    事实 - 节假日日历 维 - 日期公历
    日历日期 (DATE) 日期 (DATE)


    显示节假日日历事实及其相应日期公历维的联接对话框

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

    以图形模式创建的联接

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

在语义模型中用 Degen 属性呈现定制事实

您可以修改主题区域以显示新的自定义退化事实及其可聚合度量,以及退化维度及其属性。系统将退化事实显示为包含度量列和退化维的文件夹,作为包含属性列的单独文件夹。

在此步骤中,您将修改 SCM –销售订单主题区域,以显示新的退化事实文件夹实际–节假日日历,其中包含三个度量:营业日、月营业日和调整营业日,以及包含节假日属性的新退化维文件夹 Dim – Fact – Holiday Calendar – degendim 。

  1. 在“语义模型扩展”页上,单击 MySandbox5Mar25 沙盒。
  2. 单击执行操作,单击管理主题区域,选择修改主题区域,选择 SCM –销售订单主题区域,然后单击下一步。
  3. 在向导的步骤 1 的“修改主题区域 - SCM - 销售订单”页上,查看主题区域详细信息,然后单击下一步。
  4. 在向导的步骤 2 中,单击管理元素,单击管理新定制,然后在“添加主题区域”中,选择实际 - 节假日日历文件夹和所有事实度量,然后单击添加。

    “添加主题区域”对话框,其中显示选定的节假日(细分属性)和适用的度量

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

    显示所选数据元素的“修改主题区域 - SCM - 销售订单”页面上的向导步骤 2

应用和发布自定义

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

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

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

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

验证结果

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

  1. 在 Fusion Data Intelligence 控制台上,单击转至主页。
  2. 在 Oracle Analytics 主页上,单击创建,单击工作簿,在“添加数据”中,选择 SCM –销售订单,然后单击添加到工作簿。
  3. 通过拖动以下内容构建报表:
    • 年份
    • 月份
    • 日期
    • 假日
    • 业务日
    • 月营业日
    • 考核工作日


    通过将适用的数据元素拖到可视化窗格中来构建报告

  4. 在 2024/07 年进行筛选,其中有 2 个假日。每月的所有列加起来都是相同的 21 个工作日,但是每列可能用于不同的计算。

    报告于 2024/07 年筛选,显示 2 个假日