与 Oracle EBS 集成

Oracle EBS(E-Business Suite)集成支持使用 Incorta 进行数据提取的“订单到收款”数据模型。Incorta 使用托管实例或私有实例将数据从 Oracle 注入到 BigQuery CDC 数据集中,并处理 CDC。然后,Cortex Framework 会使用 Managed Service for Apache Airflow 来编排 BigQuery 作业,从而将 CDC 数据转换并具体化为报告资产。

下图描述了如何通过 Oracle EBS 运营工作负载获取 Oracle EBS 数据:

Oracle EBS 数据源

图 1。Cortex Framework-Oracle EBS-Incorta 集成概览。

部署配置

下表列出了用于配置 Oracle EBS 工作负载的参数:config.json 文件用于配置从任何数据源(包括 Oracle EBS)转移数据所需的设置。此文件包含以下 Oracle EBS 参数:

参数 含义 默认值 说明 匹配 Oracle 源字段
OracleEBS.itemCategorySetIDs 商品类别集 [1100000425] 用于对商品进行分类的套装列表。 MTL_ITEM_CATEGORIES.CATEGORY_SET_ID
OracleEBS.currencyConversionType 货币换算类型 "Corporate" 要在汇总表中使用的币种换算类型。 GL_DAILY_RATES.CONVERSION_TYPE
OracleEBS.currencyConversionTargets 货币换算目标 ["USD"] 要纳入汇总表中的目标币种列表。 GL_DAILY_RATES.TO_CURRENCY
OracleEBS.languages 语言 ["US"] 用于显示商品说明等字段的翻译的语言列表。 FND_LANGUAGES.LANGUAGE_CODE
OracleEBS.datasets.cdc CDC 数据集 - CDC 数据集。 -
OracleEBS.datasets.reporting 报告数据集 "REPORTING_OracleEBS" 报告数据集。 -

数据注入

请与 Incorta 代表联系,并参阅 Oracle EBS for Google Cortex 设置指南,详细了解如何将数据从 Oracle 注入到 BigQuery。

虽然 Incorta 支持按各种时间间隔安排数据注入作业,但为了获得最佳性能和数据新鲜度,我们建议您安排 Incorta 数据注入作业每天运行一次。如果您的使用情形需要处理已删除的数据,请务必按照 Incorta 文档处理源删除中的说明启用这些功能。

报告配置

本部分概述了您环境所需的报告配置。

Managed Airflow Airflow 连接

创建名为 oracleebs_reporting_bq 的 BigQuery Airflow 连接,该连接将由 BigQuery 运算符用于执行报告转换。如需了解详情,请参阅管理 Airflow 连接文档

Materializer 设置

src/OracleEBS/config/reporting_settings.yaml 中查找实体化设置。 默认情况下,维度标题汇总表每天都会具体化。报告层表也按日期进行分区。您可以根据需要自定义分区和聚簇。如需了解详情,请参阅集群设置表分区

数据模型

本部分介绍了 Oracle EBS 从订单到收款的逻辑数据模型。每个子部分都将说明以下 Oracle EBS 实体关系图 (ERD)。

Oracle EBS 的实体关系图

图 2。Oracle EBS:实体关系图。

基本事实视图

这些是 ERD 中的蓝色对象,是 CDC 表的视图,除了某些列名别名之外,没有其他转换。

维度表

这些是 ERD 中的紫色对象,包含报告表使用的相关维度属性。默认情况下,这些维度会根据适用的部署配置参数值进行过滤。此集成还使用 Cortex K9 公历维度来处理日期属性,该维度默认处于部署状态。

标题表格

这些是 ERD 中的绿色对象,包含描述标题级订单和账单等商业实体的联接事实和维度。标题表按与每个实体对应的主要事件日期(例如 ORDERED_DATEINVOICE_DATE)进行分区。

嵌套和重复的行

SalesOrdersSalesInvoices 表包含名为 LINES嵌套重复字段。这些字段用于将各种订单行和账单行归入其关联的标题下。如需查询这些嵌套字段,请使用 UNNEST 运算符将元素展平为行,如提供的示例脚本 (src/OracleEBS/src/reporting/ddls/samples/) 所示。

嵌套属性和重复属性

某些表包含其他嵌套的重复字段,例如 ITEM_CATEGORIESITEM_DESCRIPTIONS,其中同一属性的多个值可能适用于相应实体。如果取消嵌套这些重复属性,请务必过滤到单个属性值,以免过度统计指标。

已应用的应收款

SalesAppliedReceivables 是一个独特的表,其中的实体可以单独引用账单,也可以引用附带现金收据的账单。因此,存在嵌套(但不是重复)的 INVOICECASH_RECEIPT 字段,其中 CASH_RECEIPT 字段仅在 APPLICATION_TYPE = 'CASH' 时填充。

汇总表

这些是 ERD 中的红色对象,可从标题表汇总到每日指标。这些表还会按主要活动日期进行分区。汇总表仅包含可加性度量(例如,计数、总和),不包含平均值和比率等度量。这意味着,用户必须推导非加性指标,以确保在汇总到更高粒度(例如每月)时,这些指标能够得到适当的推导。 请参阅 src/OracleEBS/src/reporting/ddls/samples/SalesOrderAggMetrics.sql 等示例脚本。

货币换算金额

每个汇总表格都使用 CurrencyRateMD 维度来创建嵌套的重复字段 AMOUNTS,其中包含已转换为部署配置中指定的每种目标币种的货币度量。使用这些指标时,请务必过滤为单一目标币种或按目标币种分组以生成报告,以免出现重复统计的情况。您还可以在示例脚本(例如 src/OracleEBS/src/reporting/ddls/samples/SalesOrderAggMetrics.sql)中看到这一点。

嵌套的行属性和度量

SalesOrdersDailyAgg 表包含一个名为 LINES 的嵌套重复字段,用于区分行级属性和指标(例如 ITEM_CATEGORY_NAMEAMOUNTS)与标题级属性和指标(例如 BILL_TO_CUSTOMER_NAMENUM_ORDERS)。请注意分别查询这些粒度,以免出现过度统计的情况。

虽然发票也有标题与行之分,但表 SalesInvoicesDailyAgg 仅包含行级指标,因此其结构与 SalesOrdersDailyAgg 不同。

接下来怎么做?