SAP ERP 数据源

Google Cloud Cortex Framework 的 SAP ERP 数据基础层需要连接到源系统原始数据。支持 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。

  1. 原始数据结构:来自 ECC 或 S/4HANA 的数据应以与 SAP 中基本表相同的结构进入 BigQuery,且不进行业务转换。必须按照 SAP 中的要求复制表,并使用所需的字段名称、类型和粒度。

  2. 表配置:要转换的表的列表在 table_settings.yaml 文件(位于 config/cortex/data_foundation/sap 下)中定义。如果部署期间缺少必需的表,依赖于该表的特定数据产品将失败。

  3. 元数据要求:您必须将元数据表(例如 DD03L)从 SAP 源复制到原始数据集(在 config/config.yaml 中配置为基础模块的来源)。请注意,虽然这些元数据表必须存在于原始数据集中,但不得包含在数据基础 table_settings.yaml 文件中,也不会由数据基础层处理。确保复制的 DD03L 表包含您计划注入的任何表(例如自定义表或补充表,如 sflight)的字段元数据记录。Cortex 框架 build 脚本和依赖项解析器会读取这些元数据行,以识别列列表、数据类型以及表之间的主键关系。

  4. 大小写:为了与 Cortex Framework 数据模型兼容,BigQuery 中复制的 SAP 表的名称必须采用小写形式(例如,SAP 表 MARA 在 BigQuery 中变为 mara)。

  5. 对象名称(列)和特殊字符:对于包含特殊字符(例如 /- 或前导下划线 _)的对象名称(列),Cortex 需要采用通用清理模式:

    • 所有非字母数字字符都会替换为下划线 _
    • 不得以英文下划线和数字开头。例如,/GOOG/TEST 将更改为 goog_test_DATAAGING 将更改为 dataaging。如果您的复制工具在放置数据时保留了前导下划线,则需要在数据基础层中执行规范化步骤(别名)。
  6. 数据传播字段:为了支持 CDC(变更数据捕获)和数据传播,复制的 SAP 表需要具有以下字段:

    • 一个名为 operation_flag 的操作标志(L = 初始加载,I = 插入,U = 更新,D = 删除)。
    • 一个名为 recordstamp 的时间戳(在加载时填充当前时间戳)。
    • 可选:在复制的 _DS_RAW 表中选择一个额外的字段 is_deleted(布尔值,初始加载时默认为 false)。Cortex 生成的运行时视图会引用此列,但如果复制工具不生成此列,则可以在执行之前从 CDC 和视图模板中移除此列。
  7. 数据类型:为了实现兼容性,必须将 SAP 数据类型与 BigQuery 数据类型进行映射:

    标准操作所必需的权限

    数据类型 SAP BigQuery 数据类型 说明
    DATS DATE 日期数据类型
    TIMS TIME 时间数据类型
  8. 强烈建议使用,以确保准确性和兼容性

    • CURR(币种)和 QUAN(数量)映射到 NUMERICBIGNUMERIC(避免使用 FLOAT64,以防止财务计算出现舍入误差)。
    • NUMC(数字字符)映射到 STRING(保留文档编号和商品编号的前导零,确保成功联接)。
  9. 载荷压缩:为防止 BigQuery 中的空 SAP 列(初始值为空格或零)填充 NULL,请确保在连接器配置中停用载荷压缩(或启用“发送未压缩的数据”)。这样可确保空字符串或零在目标中保持原样,而不是默认设置为 NULL