扩展语义模型的建议和提示

在扩展语义模型之前,请查看建议和提示,以确保扩展按预期工作。

语义模型扩展框架

分支结构

如果您仍然使用语义模型分支框架,现在是迁移到沙盒框架的时候了。请参见 Migrate to the Sandbox Framework for Semantic Model Extensions

沙盒框架

仅保留正在使用沙盒。删除用于测试且不再使用的沙盒。维护其他未使用的沙盒会降低系统的性能。

数据库对象

面向 Autonomous AI Lakehouse 对象的数据库命名标准

  • 在定制对象前面加上 X_ZZZ_,其中 ZZZ 是组织的缩写。
  • 将不同的对象后缀为:
    • _A = 汇总
    • _D = 维
    • _DH = 维层次
    • _F = 事实
    • _H = 帮助
    • _M = 映射维
    • _MD = 迷你尺寸
    • _V = 视图
    • _MV = 实体化视野
    • _DS = 数据扩充数据集
    • _EXT = 数据扩充扩展
  • 不要创建以 "DW" 开头的任何定制数据库对象,因为这可能会导致与预生成的对象名称冲突。以 "DW" 开头的定制数据库对象可能会导致语义模型扩展向导中的行为不一致。
  • 请勿将这些系统保留的后缀用于定制方案名称:DW、OAC、INFRA、SECURITY、USER 或 CORE。

    如果对定制方案名称使用这些系统保留的后缀之一,则在管道处理期间可能会向定制方案授予意外权限。

数据扩充数据集和弹性域

  • 确保在 Oracle Fusion Data Intelligence 实例中处理源中的更改。例如,如果在来源中禁用了自定义主题区域中使用的说明性弹性域,则必须替换或删除 Oracle Fusion Data Intelligence 中的适用说明性弹性域,否则适用的语义模型扩展将失败。
  • 在数据扩充的初始完全加载完成后,您可以在语义模型扩展中引用数据扩充数据集中的同义词。使用数据扩充中的立即运行选项可直接执行满负荷。

正在扩展

常规
  • 为对象(维、事实和列)命名时,会删除所有前导和尾随空格。可以在名称中使用下划线和空格,但可以避免使用其他所有特殊字符。
  • 添加定制属性或定义用于联接的键时,请确保显示名称是唯一的,并且不与任何预生成的列名称冲突。
扩展维
  • 重要提示:必须将扩展保持在最低限度并组合使用,以防止不必要的开销和性能下降。扩展维(如果扩展粒度是一对一 [1:1] 与预构建维)时,将在 Autonomous AI Lakehouse 中的单个源(表/视图/同义词)中组合同一维的多个扩展。最好有一个具有多个列的扩展,而不是每个列具有多个扩展。
  • 注意:扩展维时,强烈建议使用基本维关键字联接。如果无法基于基本维键联接,则可以谨慎联接到另一个基本列,验证数据粒度和基数。强烈不建议使用其他扩展列进行联接。系统将按顺序处理具有相关性的扩展,从而延长应用和发布沙盒所用的时间,并且可能会对查询性能产生负面影响。
  • 扩展 DEGEN 维("Details" 文件夹)时,通过使用一对一 [1:1] 关系联接事实的主键,始终保持相同的粒度级别。不要定义多对多 [M:M] 联接,因为这可能会导致性能下降和数据重复。
  • 在扩展具有一对多 (1:M) 关系的维(例如多选)时要谨慎,因为:
    • 它们可能会导致数据重复,因为扩展数据的粒度低于父维。
    • 可能会超出最大扩展索引长度。

    为避免该约束条件,请尽可能将表/视图/同义词命名为简短。例如,FDI_X_SZ_V(大小)和 FDI_X_PR_V(价格)。

  • 在扩展逻辑对象之前,验证关联的表示表是否显示在主题区域中。请参阅适用的语义模型沿袭电子表格。
  • 扩展维时,如果选择的表是扩充表,请从 OAX$OAC 方案而不是 OAX_USER 中选择该表。扩充表的主方案是 OAX$OAC,即使扩充表也存在于 OAX_USER 中。
  • 扩展属性列大小不能超过 256 个字符。
  • 扩展维时,根据维类型(取消生成或符合)以及基表和扩展表之间的关系选择联接类型。您的选择取决于您是要保留还是放弃不匹配的记录。
    • Left Outer(左外部):建议大多数扩展保留基表中的所有行,特别是对 1:many 关系或扩展表不完整时。这样可避免意外删除基行。
    • 内部错误:当您只想要同时存在于两个表中的记录并且可以放心地排除不匹配的行时,最适合建立真正的一对一关系。不建议在扩展退化维时使用。
    • 右外部:不经常使用。当需要保留扩展表中的所有行并且仅从基表中拉取匹配行时,请选择此选项。
    • Full Outer(完全外部):请谨慎使用,以保留两个表中的所有行,而不考虑匹配项。不要对退化维使用 Full Outer,因为它们可能会造成数据复制和性能下降。

创建维

  • 创建定制维时,可以取消选择将层次添加到主题区域。但是,仍需要定义层次结构主键和显示属性。单击“Selected Data Elements Detail(所选数据元素详细信息)”文件夹,然后单击“Properties(属性)”编辑图标以定义层次主键和显示属性。

创建退化维

  • 避免向事实表添加非退化维属性。而是在定义事实表定义时选择属性的退化标志。事实表中的非标记维属性会对报表结构产生负面影响,增加运行时错误的风险,并使系统维护复杂化。
创建事实
  • 添加自定义事实时,始终为加入自定义事实的自定义维设置内容级别。
  • 将事实联接到维时,请确保要联接的列具有兼容的数据类型。
创建层次
  • 添加自定义层次结构时,请避免在可视化中显示总计级别,因为自定义层次结构仅从第一层公开。预构建的层次结构也不会公开总层。“总计”级别仅提供总计金额;因此,仅当事实与维之间没有联接且度量必须设置为总计级别时才使用它。
  • 定义层次结构时,必须将所有可用数据元素映射到级别或详细信息。
  • 在编辑层次结构(例如添加、删除或更改级别)之前,请先从“主题区域”中删除层次结构,编辑层次结构,然后将层次结构重新添加到“主题区域”。
  • 沙盒框架当前不支持创建基于值的定制层次。它支持预设和加入预构建的基于值的层次结构。

添加列

  • 将函数和聚合直接应用于基本列。避免嵌套派生列,以防止在语义模型中出现不必要的依赖关系、处理开销、延迟和潜在的计算错误。
  • 避免添加现有语义模型中已经存在的列;这会创建冗余联接并增加处理开销。
  • 使用自定义事实和维时,请避免使用派生的列。而是在数据库层内执行必要的计算,或者在其创建过程中直接在对象上定义表达式。

使用数据应用程序

  • 如果您使用可配置账户分析、Fusion 会计中心或供应链计划应用程序等专用数据应用程序,则应仅在应用程序中实施所有必要的自定义。避免在语义模型中创建重复的配置,因为这引入了冗余依赖项和不必要的处理开销。

部署

  • 迁移必须仅沿单个方向进行。选择一个环境作为主开发环境。用户验收测试后,生成并部署语义扩展包,以将更改迁移到生产环境和其他环境。
  • 如果语义模型使用新配置的应用程序角色、组或用户保护对象,请确保在导入和部署语义模型包之前导入和部署安全包。