与 Oracle EBS 集成

Oracle EBS(电子商务套件)集成支持使用 Incorta 数据提取功能的“订单到收款”数据模型。Incorta 使用托管或私有实例将数据从 Oracle 提取到 BigQuery CDC 数据集,并处理 CDC 处理。然后,Cortex Framework 使用 Cloud Composer 来编排 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 Setup Guide(适用于 Google Cortex 的 Oracle EBS 设置指南),详细了解如何将数据从 Oracle 提取到 BigQuery。

虽然 Incorta 支持按不同的间隔时间安排数据提取作业,但为了实现最佳性能和数据新鲜度,我们建议将 Incorta 数据提取作业安排为每天运行。如果您的用例需要处理已删除的数据,请务必按照 Incorta 文档中的处理来源删除操作部分中的说明进行操作,以启用相应功能。

报告配置

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

Cloud Composer 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 不同。

后续步骤