通过 SAP ODP 插件可实现从 SAP 应用批量数据集成, 使用 Cloud Data Fusion 的 BigQuery 或其他受支持的目标系统。 该插件具有以下主要功能:
- 使用 SAP ECC、SAP S4/HANA 或 SAP BW 作为源系统
- 用途 SAP CDC(变更数据捕获) 跟踪和提取数据源中的新数据和增量数据
- 使用批量提取模式
- 支持 SAP 数据源 和 ABAP CDS 视图 作为数据源
支持的软件版本
软件 | 版本 |
---|---|
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 及更高版本 |
如需详细了解 Google Cloud 上的 SAP,请参阅 Google Cloud 上的 SAP 概览。
准备工作
设置 SAP ODP 插件使用的以下系统和服务:
- 配置 SAP ERP 系统。
此过程包括以下步骤:
- 安装 SAP 传输文件。
- 设置所需的 SAP 授权和角色。
- 设置 SAP Java Connector。
在 Cloud Data Fusion 中部署 ODP 插件。
- 重要提示:请选择与 Cloud Data Fusion 版本。
- 如果您升级 Cloud Data Fusion 的版本 实例或插件时,评估更改对 流水线的功能范围和性能
在 Cloud Data Fusion 和 SAP 之间建立 RFC 连接。
- 确保在两个产品之间 Cloud Data Fusion 实例和 SAP 服务器相关联。
- 对于专用实例,请进行相关设置 VPC 网络对等互连。
- SAP 系统和 Cloud Data Fusion 实例都必须 属于同一个项目。
配置插件
- 前往 Cloud Data Fusion 网页界面,然后点击 Studio。
- 检查是否选择了 Data Pipeline - Batch(而非 Realtime)。
- 在 Source 菜单中,点击 SapODP。SAP ODP 节点会显示在您的流水线中。
- 如需配置该来源,请前往 SAP ODP 节点,然后点击属性。
输入以下属性。如需查看完整列表,请参阅属性。
- 输入 SAP ODP 节点的标签,
示例
SAP ODP tables
。 输入连接详情。您可以设置新的一次性连接 或可重复使用的现有连接。
新增关联项
如需向 SAP 添加一次性连接,请按以下步骤操作:
- 让使用网络连接保持关闭状态。
在连接部分中,在以下字段中输入 SAP 账号中的以下信息:
- 在参考名称字段中,输入 识别此沿袭来源的连接。
- 在 SAP 客户端字段中,输入 特定实例或环境SAP 管理员可以提供客户端名称。
- 在 SAP 语言字段中,输入 SAP 登录语言。 默认值为 EN(英语)。
选择以下连接类型之一。
- 直接(通过 SAP 应用服务器)。如果您选择此默认类型,请在以下字段中输入信息:SAP 应用服务器主机、SAP 系统编号和 SAP 路由器。
- 负载均衡(通过 SAP 消息服务器)。如果您选择此类型,请在以下字段中输入信息:SAP 消息服务器主机、SAP 消息服务器服务或端口号、SAP 系统 ID (SID) 和 SAP 登录组名称。
在上下文字段中,选择数据源的类型 资源。
在 SAP ODP source name 字段中,输入 您使用的数据源
在提取类型字段中,选择数据类型 提取。默认值为完整(所有数据)。
提供 SAP 凭据:要求 SAP 管理员提供 SAP 登录用户名和密码。
在 JCo Library Cloud Storage 路径字段中,输入 SAP Java Connector (SAP JCo) 路径, 包含您上传的 SAP JCo 库文件。
如需基于 SAP 的元数据生成架构,并将 SAP 数据类型映射到相应的 Cloud Data Fusion 数据类型,请点击获取架构。如需了解详情,请参阅数据类型映射。
可选:如需优化从 SAP 的注入负载,请输入 信息:
- 在 SAP ODP 订阅者名称字段中,标识用于从有效 DataSource 中提取数据的订阅者。
- 使用过滤条件选项,您可以根据过滤条件提取记录 选择条件。
- 在拆分数量字段中,您可以创建 分区来并行提取数据记录, 提高性能。拆分数量可能会影响 SAP 因此必须谨慎选择
- 在软件包大小字段中,指定要在单个 SAP 网络调用中提取的记录数。软件包大小会影响性能和可用资源,因此必须谨慎选择。
可重复使用的连接
如需重复使用现有连接,请按以下步骤操作:
- 开启使用连接。
- 点击浏览连接。
点击连接名称。
如果不存在连接,如需创建可重复使用的连接,请按以下步骤操作:
- 依次点击添加连接 > SapOdp。
- 在随即打开的创建 SapOdp 连接页面上,输入连接名称和说明。
- 在 SAP client 字段中,输入 SAP 中特定实例或环境的客户端名称。SAP 管理员可以提供客户端名称。
- 在 SAP 语言字段中,输入 SAP 登录语言。 默认值为 EN(英语)。
选择下列连接类型之一。
- 直接(通过 SAP Application Server)。如果您选择此默认类型,请在以下字段中输入信息:SAP 应用服务器主机、SAP 系统编号和 SAP 路由器。
- 负载均衡(通过 SAP 消息服务器)。如果您选择 请在以下字段中输入信息: SAP Message Server 主机、SAP Message Server 服务 或端口号、SAP 系统 ID (SID) 和 SAP 登录 群组名称。
在 SAP ODP 来源名称中,输入 SAP。
提供 SAP 凭据:向 SAP 管理员索要 SAP 登录用户名和密码值。
在 JCo 库 Cloud Storage 路径字段中,输入 Cloud Storage 中包含您上传的 SAP JCo 库文件的 SAP Java Connector (SAP JCo) 路径。
在等待时间字段中,输入下次重试之前要等待的时间(以秒为单位),例如
60
。在重试次数字段中,输入重试次数上限,例如
3
。可选:在其他 SAP 连接属性中 字段,输入必须替换 SAP JCo 的键值对 默认值。
点击创建。
- 输入 SAP ODP 节点的标签,
示例
属性
属性 | 宏已启用 | 必需属性 | 说明 |
---|---|---|---|
标签 | 否 | 是 | 数据流水线中节点的名称。 |
使用连接 | 否 | 否 | 使用可重复使用的连接。如果使用连接,则无需提供凭据。如需了解详情,请参阅 管理关联。 |
名称 | 否 | 是 | 可重复使用的连接的名称。 |
SAP 客户端 | 是 | 是 | SAP 系统中的特定实例或环境。 |
SAP 语言 | 是 | 是 | SAP 界面和数据的显示和处理语言。 |
连接类型 | 否 | 是 | SAP 连接类型:直接或加载 均衡。 |
SAP 应用服务器主机 | 是 | 否 | 仅对于直接连接类型,此主机名为 该 API 充当应用服务器之间的中间件层, SAP 客户端(例如 SAP 网页界面、网络浏览器或移动应用) 和底层数据库 |
SAP 系统编号 | 是 | 否 | 仅对于直接连接类型,此数字为
唯一标识符。例如 00 。 |
SAP 路由器 | 是 | 否 | (仅针对直接连接类型)为路由器 为代理服务器提供安全通道, SAP 系统与外部客户或合作伙伴之间的通信。 |
SAP Message Server 主机 | 是 | 否 | 仅适用于负载均衡连接类型,这是主机的名称,有助于在 SAP 中的多个应用服务器之间进行负载均衡。 |
SAP 消息服务器服务或端口号 | 是 | 否 | 仅对于负载均衡连接类型,此值为 SAP Message Server 用于监听传入连接的网络端口 从 SAP 客户端和应用服务器同步。 |
SAP 系统 ID (SID) | 是 | 否 | 仅对于负载均衡连接类型,系统会为每个 SAP 系统分配此 ID。 |
SAP 登录群组名称 | 是 | 否 | 多个 SAP 的逻辑分组或配置的名称
应用服务器默认值为 PUBLIC 。 |
对象类型 | 不适用 | 不适用 | 支持的对象类型:数据源/提取工具或 ABAP 核心数据服务。 |
SAP ODP 来源名称 | 是 | 是 | SAP DataSources 或 CDS 视图名称(例如 2LIS_02_ITM )。 |
提取类型 | 是 | 是 | 该插件支持以下两种类型的数据提取:
|
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 提取数据的 ODP 订阅方
或 CDS 视图。它必须具有以下各项:
|
等待时间 | 是 | 否 | 通过此属性,数据工程师可以选择合适的等待时间 从 Cloud Data Fusion 到 SAP 的每次网络调用后发送。 |
重试次数 | 是 | 否 | 等待网络调用完成期间的重试尝试次数。 |
过滤条件选项(等于) | 是 | 否 | 字段必须读取的值。 过滤条件选项是元数据字段名称及其值对的列表。 它们用于指定从 SAP 数据源读取数据时要应用的过滤条件。系统仅提取满足条件的记录。 过滤条件键对应于架构中的字段。必须是 简单类型(不是 ARRAY 、RECORD 或
UNION )。用法示例:字段名称: MTART 值: FERT |
过滤器选项(范围) | 是 | 否 | 字段必须读取的值的下限和上限。 过滤条件选项是元数据字段名称及其值对的列表。 定义从 SAP 读取数据时要应用的过滤条件 DataSource。仅提取符合条件的记录。 过滤器键与架构中的一个字段相对应。它的格式为低和高。用法示例: 字段名称: ERDAT 最低值: 2023-11-01 高价值: 2023-11-30 |
过滤选项(较不等于) | 是 | 否 | 字段必须小于或等于的值。 过滤条件选项是元数据字段名称及其值对的列表。 定义从 SAP 读取数据时要应用的过滤条件 DataSource。仅提取符合条件的记录。 过滤条件键对应于架构中的字段。必须是 简单类型(不是 ARRAY 、RECORD 或
UNION )。用法示例:字段名称: MATNR 值: 10008 |
过滤条件选项(大于等于) | 是 | 否 | 要读取的字段必须大于该值。 过滤条件选项是元数据字段名称及其值对的列表。 它们用于指定从 SAP 数据源读取数据时要应用的过滤条件。仅提取符合条件的记录。 过滤器键与架构中的一个字段相对应。必须是 简单类型(不是 ARRAY 、RECORD 或
UNION )。用法示例:字段名称: MATNR 值: 10008 |
过滤选项(不等于) | 是 | 否 | 定义字段不得等于的值。 过滤条件选项是元数据字段名称及其值对的列表。 它们用于指定从 SAP 数据源读取数据时要应用的过滤条件。仅提取符合条件的记录。 过滤器键与架构中的一个字段相对应。必须是 简单类型(不是 ARRAY 、RECORD 或
UNION )。用法示例:字段名称: MTART 值: FERT |
要生成的分片数 | 是 | 否 | 创建分区以并行提取记录。 运行时引擎会创建指定数量的分区(并且 SAP 同时提取记录。 增加此值时要小心,因为这会增加与 SAP 的并发连接数。 建议:规划每个流水线的 SAP 连接以及同时运行的流水线总数。 如果值为 0 或留空,Cloud Data Fusion 会根据可用执行程序的数量、要提取的记录以及软件包大小选择适当的值。 |
软件包大小(以 KB 为单位) | 是 | 否 | 要在单个 SAP 网络调用中提取的记录数。时间是
每次连接到网络时 SAP 在内存中缓冲的记录数
提取调用。 设置此属性时,请务必小心。多个数据流水线 提取数据可能会使内存使用量达到峰值, Out of memory 个错误。
|
其他 SAP 连接属性 | 是 | 否 | 设置其他 SAP JCo 属性以替换 SAP JCo 默认值。
例如,设置 jco.destination.pool_capacity = 10 会替换默认的连接池容量。 |
数据类型映射
下表列出了 SAP 数据类型及其对应的 Cloud Data Fusion 类型。
SAP 数据类型 | ABAP 类型 | SAP description | Cloud Data Fusion 数据类型 |
---|---|---|---|
INT1 (数字) |
b | 1 个字节的整数 | 整数 |
INT2 (数字) |
秒 | 2 个字节的整数 | 整数 |
INT4 (数字) |
i | 4 个字节的整数 | 整数 |
INT8 (数字) |
8 | 8 个字节的整数 | 长整型 |
DEC (数字) |
p | 打包成采用 BCD 格式的数字 (DEC) | decimal |
DF16_DEC 、DF16_RAW (数字) |
a | 十进制浮点 8 字节 IEEE 754r | 双精度 |
DF34_DEC 、DF34_RAW (数字) |
e | 十进制浮点 16 字节 IEEE 754r | 双精度 |
FLTP (数字) |
f | 二进制浮点数 | 双精度 |
CHAR 、LCHR (字符) |
c | 字符串 | 字符串 |
SSTRING 、GEOM_EWKB (字符) |
字符串 | 字符串 | 字符串 |
STRING (字符) |
字符串 | 字符串 CLOB | 字节 |
NUMC 、ACCP (字符) |
n | 数字文本 | 字符串 |
RAW 、LRAW (字节) |
x | 二进制数据 | 字节 |
RAWSTRING (字节) |
xstring | 字节字符串 BLOB | 字节 |
DATS (日期/时间) |
d | 日期 | 日期 |
TIMS (日期/时间) |
t | 时间 | 时间 |
TIMS (日期/时间) |
utcl | Utclong)、TimeStamp | 时间戳 |
限制
为确保正确定义和执行流水线,请查看以下内容 插件限制:
- 不支持超过 5 万的软件包大小。
- 不支持增量提取的数据源会在同步模式下失败。
- 在自定义数据源中,如果未处理软件包大小, 流水线在提取大量数据时会失败。
使用场景
支持两种提取上下文:
- 数据源或提取器 (SAPI)
- ODP 上下文 ABAP CDS (ABAP_CDS)
对于 ODP 插件, 上下文:
ODP 数据源 | 上下文 | 完整提取 | 增量提取 |
---|---|---|---|
预先交付的 SAP Standard | SAPI 接口 | 支持 | 支持 |
自定义 (Z*) | SAPI | 支持 | 支持 |
SAP Standard 预交付 | ABAP_CDS | 支持 | 支持 |
自定义 (Z*) | ABAP_CDS | 支持 | 支持 |
后续步骤
- 详细了解 Cloud Data Fusion。
- 详细了解 SAP on Google Cloud。