SAP ODP 批量来源

本页面提供了有关在 Cloud Data Fusion 中配置 SAP ODP 插件的指导。

SAP ODP 插件支持使用 Cloud Data Fusion 将 SAP 应用中的数据批量集成到 BigQuery 或其他受支持的目标系统。该插件具有以下主要功能:

支持的软件版本

软件 版本
SAP S4/HANA SAP S4/HANA 1909 及更高版本
SAP ECC SAP ERP6 NW 7.31 SP16 及更高版本
SAP JCo SAP JCo 3.0.20 及更高版本
Cloud Data Fusion 6.3 及更高版本

如需详细了解 SAP on Google Cloud,请参阅 SAP on Google Cloud概览

准备工作

设置 SAP ODP 插件使用的以下系统和服务:

  1. 配置 SAP ERP 系统。 此过程包括以下步骤:
    • 安装 SAP 传输文件。
    • 设置所需的 SAP 授权和角色。
    • 设置 SAP Java 连接器。
  2. 在 Cloud Data Fusion 中部署 ODP 插件

    • 重要提示:请选择与 Cloud Data Fusion 版本兼容的插件版本。
    • 如果您升级 Cloud Data Fusion 实例或插件版本,请评估这些更改对流水线的功能范围和性能的影响。
  3. 在 Cloud Data Fusion 和 SAP 之间建立 RFC 连接

    • 确保 Cloud Data Fusion 实例和 SAP 服务器之间启用了通信。
    • 对于专用实例,请设置 VPC 网络对等互连
    • SAP 系统和 Cloud Data Fusion 实例必须位于同一项目中。

配置插件

  1. 前往 Cloud Data Fusion 网页界面,然后点击 Studio
  2. 检查是否已选择 Data Pipeline - Batch(而不是 Realtime)。
  3. 来源菜单中,点击 SapODP。SAP ODP 节点会显示在您的流水线中。
  4. 如需配置该来源,请前往 SAP ODP 节点,然后点击属性
  5. 输入以下属性。如需查看完整列表,请参阅属性

    1. 为 SAP ODP 节点输入一个标签,例如 SAP ODP tables
    2. 输入连接详情。您可以设置新的一次性连接,也可以设置现有的可重复使用连接。

      新增关联项

      如需向 SAP 添加一次性连接,请按以下步骤操作:

      1. 使用连接保持关闭状态。
      2. 连接部分中,在以下字段中输入 SAP 账号中的以下信息:

        1. Reference name(参考名称)字段中,输入用于标识此来源以便进行谱系分析的连接名称。
        2. SAP client 字段中,输入 SAP 中特定实例或环境的客户端名称。SAP 管理员可以提供客户名称。
        3. SAP 语言字段中,输入 SAP 登录语言。默认值为 EN(英语)。
        4. 选择以下连接类型之一。

          • 直接(通过 SAP 应用服务器)。如果您选择此默认类型,请在以下字段中输入信息:SAP 应用服务器主机SAP 系统编号SAP 路由器
          • 负载均衡(通过 SAP 消息服务器)。如果您选择此类型,请在以下字段中输入信息:SAP 消息服务器主机SAP 消息服务器服务或端口号SAP 系统 ID (SID)SAP 登录组名称
        5. Context 字段中,选择您使用的的数据源类型。

        6. SAP ODP 源名称字段中,输入您使用的 SAP 数据源的名称。

        7. 提取类型字段中,选择数据提取类型。默认值为完整(所有数据)

        8. 提供 SAP 凭据:向 SAP 管理员索要 SAP 登录用户名密码

        9. JCo 库 Cloud Storage 路径字段中,输入 Cloud Storage 中包含您上传的 SAP JCo 库文件的 SAP Java Connector (SAP JCo) 路径。

        10. 如需基于 SAP 的元数据生成架构,并将 SAP 数据类型映射到相应的 Cloud Data Fusion 数据类型,请点击获取架构。如需了解详情,请参阅数据类型映射

        11. 可选:如需优化从 SAP 提取数据的负载,请在以下字段中输入信息:

          1. SAP ODP 订阅者名称字段中,标识用于从有效 DataSource 中提取数据的订阅者。
          2. 借助过滤选项,您可以根据选择条件提取记录。
          3. 分块数量字段中,您可以创建分区以并行提取数据记录,从而提高性能。分块数量可能会影响 SAP 工作流程,因此必须谨慎选择。
          4. 软件包大小字段中,指定要在单个 SAP 网络调用中提取的记录数。软件包大小会影响性能和可用资源,因此必须谨慎选择。

      可重复使用的连接

      如需重复使用现有连接,请按以下步骤操作:

      1. 开启使用连接
      2. 点击浏览连接
      3. 点击连接名称。

      如果不存在连接,如需创建可重复使用的连接,请按以下步骤操作:

      1. 依次点击添加连接 > SapOdp
      2. 在随即打开的创建 SapOdp 连接页面上,输入连接名称和说明。
      3. SAP client 字段中,输入 SAP 中特定实例或环境的客户端名称。SAP 管理员可以提供客户端名称。
      4. SAP 语言字段中,输入 SAP 登录语言。 默认值为 EN(英语)。
      5. 选择以下连接类型之一。

        • 直接(通过 SAP 应用服务器)。如果您选择此默认类型,请在以下字段中输入信息:SAP 应用服务器主机SAP 系统编号SAP 路由器
        • 负载均衡(通过 SAP 消息服务器)。如果您选择此类型,请在以下字段中输入信息:SAP 消息服务器主机SAP 消息服务器服务或端口号SAP 系统 ID (SID)SAP 登录群组名称
      6. 在 SAP ODP 源名称中,输入 SAP 中的 ODP 数据源名称。

      7. 提供 SAP 凭据:向 SAP 管理员索要 SAP 登录用户名密码值。

      8. JCo 库 Cloud Storage 路径字段中,输入 Cloud Storage 中包含您上传的 SAP JCo 库文件的 SAP Java Connector (SAP JCo) 路径。

      9. 等待时间字段中,输入下次重试之前要等待的时间(以秒为单位),例如 60

      10. 重试次数字段中,输入重试次数上限,例如 3

      11. 可选:在其他 SAP 连接属性字段中,输入必须替换 SAP JCo 默认值的键值对。

      12. 点击创建

属性

属性 已启用宏 必需属性 说明
标签 数据流水线中相应节点的名称。
使用连接 使用可重复使用的连接。如果使用连接,则无需提供凭据。如需了解详情,请参阅管理连接
名称 可重复使用的连接的名称。
SAP 客户端 SAP 系统中的特定实例或环境。
SAP 语言 SAP 界面和数据的显示和处理语言。
连接类型 SAP 连接类型:直接负载均衡
SAP 应用服务器主机 仅适用于直接连接类型,此主机名来自 SAP 应用服务器,该服务器充当 SAP 客户端(例如 SAP 网络界面、网络浏览器或移动应用)与底层数据库之间的中间件层。
SAP 系统编号 仅适用于直接连接类型,此编号是分配给每个 SAP 系统的唯一标识符。例如 00
SAP 路由器 仅适用于直接连接类型,这是代理服务器的路由器字符串,用于在 SAP 系统与外部客户端或合作伙伴之间提供安全的通信渠道。
SAP 消息服务器主机 仅适用于负载均衡连接类型,这是主机的名称,有助于在 SAP 中的多个应用服务器之间进行负载均衡。
SAP 消息服务器服务或端口号 仅适用于负载均衡连接类型,这是 SAP 消息服务器监听来自 SAP 客户端和 SAP 中的应用服务器的传入连接的网络端口。
SAP 系统 ID (SID) 仅对于负载均衡连接类型,系统会为每个 SAP 系统分配此 ID。
SAP 登录群组名称 多个 SAP 应用服务器的逻辑分组或配置的名称。默认值为 PUBLIC
对象类型 不适用 不适用 支持的对象类型:数据源/提取工具ABAP 核心数据服务
SAP ODP 来源名称 SAP DataSources 或 CDS 视图名称(例如 2LIS_02_ITM)。
提取内容类型 该插件支持以下两种数据提取:
  • 完整(所有数据):提取所有可用数据。
  • 同步(基于上次执行的自动选择):根据 SAP 中可用的先前执行类型和状态确定是否应运行完整、增量(增量)或恢复(从上次执行中恢复)模式。它会提取初始流水线执行(ODP 模式 F)的完整数据,并更改后续流水线执行中的数据(ODP 模式 D、R)。
SAP 登录用户名 SAP 用户名
推荐:如果用户名定期更改,请使用
SAP 登录密码 SAP 密码。
推荐:使用安全的宏
GCP 项目 ID Google Cloud 项目 ID。
SAP JCo 库 GCS 路径 您上传 SAP JCo 库文件的 Cloud Storage 的路径。
获取架构 不适用 不适用 该插件基于 SAP 中的元数据生成架构,将 SAP 数据类型映射到相应的 Cloud Data Fusion 数据类型。请参阅数据类型映射
SAP ODP 订阅者名称 用于从有效 SAP DataSource 或 CDS 视图中提取数据的 ODP 订阅者。必须包含以下内容:
  • 最多 32 个字符,不含空格
  • 仅包含 azAZ09_/
  • 对于从同一 SAP 数据源提取数据的不同流水线,此值必须是唯一的
如果将此字段留空,Cloud Data Fusion 会使用项目 ID、命名空间和流水线名称的组合生成 ID。您可以重复使用之前的订阅,例如第三方工具创建的订阅。
等待时间 借助此属性,数据工程师可以在 Cloud Data Fusion 向 SAP 发出每次网络调用后选择适当的等待时间。
重试次数 等待网络调用完成期间的重试尝试次数。
过滤条件选项(等于) 字段必须读取的值。
过滤条件选项是元数据字段名称及其值对的列表。 它们用于定义从 SAP DataSource 读取数据时要应用的过滤条件。系统仅提取满足条件的记录。
过滤条件键对应于架构中的字段。它必须是简单类型(不是 ARRAYRECORDUNION)。示例用法
字段名称:MTART
值:FERT
过滤条件选项(范围) 字段必须读取的值的下限和上限。
过滤条件选项是元数据字段名称及其值对的列表。 它们用于定义从 SAP DataSource 读取数据时要应用的过滤条件。系统仅提取满足条件的记录。
过滤条件键对应于架构中的字段。它的格式为低和高。用法示例
字段名称:ERDAT
低值:2023-11-01
高值:2023-11-30
过滤选项(小于等于) 字段必须小于或等于的值。
过滤条件选项是元数据字段名称及其值对的列表。 它们用于定义从 SAP DataSource 读取数据时要应用的过滤条件。系统仅提取满足条件的记录。
过滤条件键对应于架构中的字段。它必须是简单类型(不是 ARRAYRECORDUNION)。示例用法
字段名称:MATNR
值:10008
过滤条件选项(大于等于) 字段必须大于此值才能读取。
过滤条件选项是元数据字段名称及其值对的列表。 它们用于定义从 SAP DataSource 读取数据时要应用的过滤条件。系统仅提取满足条件的记录。
过滤条件键对应于架构中的字段。它必须是简单类型(不是 ARRAYRECORDUNION)。示例用法
字段名称:MATNR
值:10008
过滤条件选项(不等于) 定义字段不得等于的值,否则无法读取。
过滤条件选项是元数据字段名称及其值对的列表。 它们用于定义从 SAP DataSource 读取数据时要应用的过滤条件。系统仅提取满足条件的记录。
过滤条件键对应于架构中的字段。它必须是简单类型(不是 ARRAYRECORDUNION)。示例用法
字段名称:MTART
值:FERT
要生成的分片数 创建分区以并行提取记录。
运行时引擎会在提取记录时创建指定数量的分区(和 SAP 连接)。
增加此值时要小心,因为这会增加与 SAP 的并发连接数
建议:规划每个流水线的 SAP 连接以及同时运行的流水线总数。
如果值为 0 或留空,Cloud Data Fusion 会根据可用执行程序的数量、要提取的记录以及软件包大小选择适当的值。
软件包大小(以 KB 为单位) 要在单个 SAP 网络调用中提取的记录数。这是每次网络提取调用期间 SAP 在内存中缓冲的记录数。
设置此属性时请谨慎操作。多个提取数据的数据流水线可能会使内存用量达到峰值,并因 Out of memory 错误而导致失败。
  • 请输入正整数。
  • 如果为 0 或留空,则插件会使用标准值 70000 或正确计算的值。
  • 如果数据流水线因 Out of memory 错误而失败,请减小软件包大小或增加可用于 SAP 工作进程的内存。
其他 SAP 连接属性 设置其他 SAP JCo 属性以替换 SAP JCo 默认值。 例如,设置 jco.destination.pool_capacity = 10 会替换默认的连接池容量。

数据类型映射

下表列出了 SAP 数据类型及其对应的 Cloud Data Fusion 类型。

SAP 数据类型 ABAP 类型 SAP description Cloud Data Fusion 数据类型
INT1(数字) b 1 个字节的整数 int
INT2(数字) 2 个字节的整数 int
INT4(数字) i 4 个字节的整数 int
INT8(数字) 8 8 个字节的整数 long
DEC(数字) p 打包成采用 BCD 格式的数字 (DEC) decimal
DF16_DECDF16_RAW(数字) a 十进制浮点 8 字节 IEEE 754r 双精度
DF34_DECDF34_RAW(数字) e 十进制浮点 16 字节 IEEE 754r 双精度
FLTP(数字) f 二进制浮点数 双精度
CHARLCHR(字符) c 字符串 字符串
SSTRINGGEOM_EWKB(字符) 字符串 字符串 字符串
STRING(字符) 字符串 字符串 CLOB 字节
NUMCACCP(字符) n 数字文本 字符串
RAWLRAW(字节) x 二进制数据 字节
RAWSTRING(字节) xstring 字节字符串 BLOB 字节
DATS(日期/时间) d 日期 日期
TIMS(日期/时间) t 时间 时间
TIMS(日期/时间) utcl Utclong)、时间戳 时间戳

限制

为确保正确定义和执行流水线,请查看以下插件限制:

  • 不支持大于 5 万的软件包大小。
  • 不支持增量提取的数据源在同步模式下会失败。
  • 在自定义数据源中,如果未处理软件包大小,则在提取大量数据时,流水线会失败。

使用场景

支持两种提取上下文:

  • 数据源或提取器 (SAPI)
  • ODP 上下文 ABAP CDS (ABAP_CDS)

ODP 插件针对这两种情境支持以下标准和自定义数据源:

ODP 数据源 上下文 完整提取 增量提取
预先交付的 SAP Standard SAPI 支持 支持
自定义 (Z*) SAPI 支持 支持
预先交付的 SAP Standard ABAP_CDS 支持 支持
自定义 (Z*) ABAP_CDS 支持 支持

后续步骤