适用于 Cortex Framework 的 SAP ERP 集成。
适用于 SAP ERP 的 Google Cloud Cortex Framework 数据基础层 需要 连接到源系统的原始数据。SAP ECC 和 SAP S/4HANA 均受支持。
在部署 Cortex Framework 内容之前,必须将相关的 SAP ERP 表复制到 BigQuery 中。您可以通过 将数据放入专用 原始层 数据集 以进行变更数据捕获 (CDC) 处理,或者使用已建立的 CDC 流水线直接为数据基础层提供数据来实现此目的。如需了解详情,请参阅 复制 SAP ERP 数据的技术要求。
您可以使用自己选择的任何复制工具,前提是该工具能够以原始表格式将数据复制到 BigQuery。例如, Google Cloud 解决方案包括 BigQuery Connector for SAP(需要 SAP SLT), 和 BigQuery Toolkit for SAP。
为确保从 SAP ERP 复制的原始数据集与 Cortex Framework 数据基础层之间的兼容性,请确保满足以下要求。
复制 SAP ERP 数据的技术要求
请务必查看并满足以下技术要求,以便将 SAP 数据复制到 BigQuery 中的 Cortex Framework。
原始数据结构:来自 ECC 或 S/4HANA 的数据应以与 SAP 中的基本表相同的结构放入 BigQuery 中 ,且不进行业务转换。必须按照 SAP 中存在的字段名称、类型和粒度复制表。
表配置:要转换的表列表在
table_settings.yaml文件(位于config/cortex/data_foundation/sap下)中定义。如果在部署期间缺少必需的表,则依赖于该表的特定数据产品将失败。元数据要求:您必须将元数据表(例如
DD03L)从 SAP 来源复制到原始数据集(在config/config.yaml中配置为基础模块的来源)。请注意,虽然这些元数据表必须存在于原始数据集中,但不得包含在数据基础table_settings.yaml文件中,并且不会由数据基础层处理。确保复制的DD03L表包含您计划注入的任何表(例如自定义表或补充表,如sflight)的字段元数据记录。Cortex Framework 构建脚本和依赖项解析器会读取这些元数据行,以识别列列表、数据类型以及表之间的主键关系。大小写:为确保与 Cortex Framework 数据模型兼容,BigQuery 中复制的 SAP 表的名称 必须采用小写形式(例如, SAP 表
MARA在 BigQuery 中变为mara)。对象名称(列)和特殊字符:对于包含特殊字符(例如
/、-或前导 下划线_)的对象名称 (列),Cortex 期望采用通用清理模式:- 所有非字母数字字符都将替换为下划线
_。 - 不允许使用前导下划线和数字。例如,
/GOOG/TEST变为goog_test,_DATAAGING变为dataaging。如果您的复制工具在放入数据时保留了前导下划线,则需要在数据基础层中执行规范化步骤(别名)。
- 所有非字母数字字符都将替换为下划线
数据传播字段:为支持 CDC(变更数据捕获)和 数据传播,复制的 SAP 表需要具有:
- 一个名为
operation_flag的操作标志(L= 初始加载,I= 插入,U= 更新,D= 删除)。 - 一个名为
recordstamp的时间戳(在加载时填充当前时间戳)。 - 可选:在
复制的
_DS_RAW表中选择一个额外的字段is_deleted(BOOLEAN)(在初始加载时默认为 false)。Cortex 生成的运行时视图会引用此列,但如果复制工具不生成此列,则可以在执行之前将其从 CDC 和视图模板中移除。
- 一个名为
数据类型:为确保兼容性,需要将 SAP 数据类型映射到 BigQuery 数据类型:
标准操作所必需的:
SAP 数据类型 BigQuery 数据类型 说明 DATS DATE日期数据类型 TIMS TIME时间数据类型 强烈建议使用以下数据类型,以确保精确率和兼容性:
CURR(货币)和QUAN(数量)映射到NUMERIC或BIGNUMERIC(避免使用FLOAT64,以防止 财务计算中出现舍入错误)。NUMC(数字字符)映射到STRING(保留文档编号和商品编号的前导零,确保联接成功)。
载荷压缩:为防止 BigQuery 中的空 SAP 列(初始值 例如空格或零)填充
NULL, 请确保在连接器 配置中**停用载荷压缩** (或启用“发送未压缩”)。这样可以确保空字符串或零在目标中保留原样,而不是默认为NULL。