本规划指南为 SAP 和 Google Cloud 管理员提供了一些有用的信息,帮助他们通过将 BigQuery Connector for SAP 2.0 或 2.1 版与 SAP LT Replication Server 搭配使用来规划将 SAP 数据复制到 BigQuery 中。
BigQuery Connector for SAP 会安装到 SAP Landscape Transformation Replication Server (SAP LT Replication Server) 上,并可让您近乎实时地将 SAP 数据直接复制到 BigQuery 中。
数据传输到 BigQuery 中后,您可以通过人工智能或机器学习对实时 SAP 应用数据执行实时分析。在 BigQuery 中,您还可以将 SAP 数据与其他来源的数据集成。
本指南涵盖了以下主题:
如需了解使用 BigQuery Connector for SAP 安装和配置 SAP LT Replication Server 复制的分步说明,请参阅 BigQuery Connector for SAP 安装和配置指南。
如需了解 BigQuery,请参阅“什么是 BigQuery?”。
如需了解在 BigQuery 中进行 SAP 数据建模的解决方案加速器,请参阅 Google Cloud Cortex Framework。
BigQuery Connector for SAP 概览
BigQuery Connector for SAP 使用 SAP Landscape Transformation Replication Server 的标准接口和功能,并支持 SAP LT Replication Server 支持的所有数据源。
BigQuery Connector for SAP 由 Google Cloud 以您安装在 SAP LT Replication Server 中的传输文件的形式提供。
您需要先下载包含传输文件的安装软件包,然后才能开始准备安装 BigQuery Connector for SAP。虽然目前 BigQuery Connector for SAP 是免费的,但您仍需要一个 Cloud Billing 账号来接收安装软件包。如需了解详情,请参阅下载安装软件包。
BigQuery Connector for SAP 是 Google Cloud 的 SAP LT Replication Server 的 SAP 业务插件 (BAdI) 实现。BigQuery Connector for SAP 是由 Google Cloud 按照 SAP LT Replication Server SDK 过程开发的。
BigQuery Connector for SAP 利用了 SAP LT Replication Server 的变更数据捕获功能。
数据处理
BigQuery Connector for SAP 将 SAP 记录从 SAP LT Replication Server 直接发送到 BigQuery,无需任何中间数据集成层或工具。
收到记录后,BigQuery 会在仅插入模式下将记录附加到表中。如果 BigQuery 收到 BigQuery 表中现有记录的更新,则 BigQuery 会在该表中插入新的记录实例,而不会修改现有实例。最近插入的记录实例反映了源表中记录的当前状态。
BigQuery Connector for SAP 仅允许进行最低限度的数据转换,并应符合“提取、加载、转换”模型 (ELT),而不是“提取、转换和加载”(ETL) 模型。如需详细了解这些模型,请参阅数据流水线的流程和模式。
BigQuery Connector for SAP 会根据源数据自动建议目标表的字段、字段名称和数据类型。在创建目标 BigQuery 表之前,您可以根据需要修改建议的值。
目标字段的建议名称基于源表中字段的说明。如需了解详情,请参阅字段的默认命名选项。
虽然 BigQuery Connector for SAP 会自动建议大多数字段的 BigQuery 数据类型,但布尔值、时间戳和十六进制值无法自动解释,因此您需要手动映射它们。如需了解详情,请参阅数据类型映射。
BigQuery Connector for SAP 提供了几个增强 Spot,您可以将自己的自定义增强功能插入 BigQuery Connector for SAP 代码中。如需了解详情,请参阅增强功能退出代码。
如果 BigQuery 中不存在目标表,则 BigQuery Connector for SAP 会创建一个。
复制开始后,SAP 记录将在仅插入模式下添加到 BigQuery。
安全
您可以使用 SAP LT Replication Server 基于角色的授权系统,控制对 SAP LT Replication Server 中的 BigQuery Connector for SAP 的访问权限。安装 BigQuery Connector for SAP 时,传输文件包含 BigQuery Connector for SAP 自定义角色。如需详细了解自定义角色,请参阅 SAP 安全性。
您可以使用 Identity and Access Management 身份验证和授权以及 BigQuery API 身份验证来控制对 Google Cloud 和 BigQuery 的访问权限。如需了解详情,请参阅 Google Cloud 安全性。
对于 BigQuery Connector for SAP 和 BigQuery 之间的通信,BigQuery Connector for SAP 使用端到端 HTTPS 通信和 SSL。
如需了解 SAP 提供的授权信息,请参阅 SAP 帮助门户中 SAP LT Replication Server 版本的《安全指南》。
可伸缩性
对于非常庞大的数据(例如具有数百万个增量的数十亿条数据记录),BigQuery Connector for SAP 使用 SAP LT Replication Server 扩缩和分区功能来大规模并行提取数据。如需了解详情,请参阅 SAP 帮助门户中 SAP LT Replication Server 版本的《容量指南》。
在 BigQuery 端,BigQuery Connector for SAP 使用 BigQuery 流处理 API 来扩缩数据加载。
安装架构
您在 SAP LT Replication Server 实例中安装 BigQuery Connector for SAP 作为业务插件 (BAdI)。
SAP LT Replication Server 实例可以在 Google Cloud、本地或其他其他云服务提供商中。每当 SAP LT Replication Server 运行时,应尽可能靠近源系统。与您的网络团队协作,确保源 SAP 系统、SAP LT Replication Server 与 BigQuery 数据集之间的低延迟和高吞吐量。
以下部分介绍了 BigQuery Connector for SAP 的常见推荐架构。
Google Cloud 上的 SAP 数据源架构
下图展示了 Google Cloud 上的两个 SAP LT Replication Server 安装示例,并且 SAP 数据源在 Google Cloud 上。
为了展示每个架构的示例,一个安装使用 SAP LT Replication Server 独立架构,其中 SAP LT Replication Server 安装在单独的服务器上,另一个安装使用 SAP LT Replication Server 嵌入式架构,其中 SAP LT Replication Server 安装在 SAP 源系统服务器中。
由于 SAP LT Replication Server 实例安装在 Google Cloud 上,因此 BigQuery Connector for SAP 直接连接到 BigQuery API 端点,而无需建立 Cloud Interconnect 或 Cloud VPN 连接。
在该图中,SAP 系统和 BigQuery 显示在不同的 Google Cloud 项目中,但您可以根据需要对这两者使用同一项目。
本地或其他云服务商上的 SAP 数据源架构
下图展示了在本地或其他云服务提供商上运行的两个示例 SAP LT Replication Server 安装。
为了展示每个架构的示例,一个安装使用 SAP LT Replication Server 独立架构,另一个安装使用 SAP LT Replication Server 嵌入式架构。
在这两个示例中,SAP LT Replication Server 都安装在 SAP 数据源所在的环境中。
从 SAP LT Replication Server 中的 BigQuery Connector for SAP 到 BigQuery 的连接由 Cloud Interconnect 连接或 Cloud VPN 连接提供。
数据流的详细架构视图
下图展示了 BigQuery Connector for SAP 在 SAP LT Replication Server 数据流中的位置。
图中的数字编号在图后面进行了说明。
以下带编号的说明对应于图中的数字编号:
- SAP LT Replication Server 初始化后,当插入、更新或删除源表中的记录时,数据库触发器会在日志记录表中记录更改。
- SAP LT Replication Server 通过 RFC 调用持续检查日志记录表中是否有新的条目。
- 如果 SAP LT Replication Server 找到新条目,读取引擎会读取记录并调用映射和转换引擎。
- 映射和转换引擎会调用写入引擎,后者会调用 BigQuery Connector for SAP。
- BigQuery Connector for SAP 会执行以下操作:
- 将 SAP 数据映射到目标表名称、字段名称和 BigQuery 数据类型。
- 创建 BigQuery 表(如有必要)。
- 通过 BigQuery 流处理 API 将记录分块发送到 BigQuery。
- 收到数据后,BigQuery 会执行以下操作:
- 执行验证检查。
- 将记录插入目标表中。
- 向 BigQuery Connector for SAP 发回 HTTP 200 (
OK
) 状态代码。
- BigQuery Connector for SAP 会将 HTTP
OK
状态代码传递回 SAP LT Replication Server,后者会从日志记录表中删除复制的条目并释放 SAP 源系统上的资源。
软件要求
BigQuery Connector for SAP 支持使用维护中的主要企业应用版本以及旧版应用作为数据源。一些受支持的 SAP 应用包括:
- SAP Business Suite 7
- S/4HANA
- 在 SAP NetWeaver 上运行的 SAP 应用
您可以在 Google Cloud、本地或公有云(例如 AWS、Azure 等)上的 SAP LT Replication Server 中安装 BigQuery Connector for SAP。
许可
根据适用于 Google Cloud Platform 的协议(包括 https://cloud.google.com/terms/service-terms 上提供的服务专用条款),BigQuery Connector for SAP 作为“软件”提供。如果不限制上述条款的一般规定,未经 Google 明确许可,不得修改或分发 BigQuery Connector for SAP。
目前免费提供 BigQuery Connector for SAP 软件。为清楚起见,根据 Google Cloud Platform(例如 BigQuery 和 BigQuery 流处理 API)使用管理协议使用其他“软件”和“服务”可能会产生费用。
BigQuery Connector for SAP 不包含任何 SAP 软件许可,包括但不限于 SAP LT Replication Server;请单独购买相应的 SAP 软件许可。
SAP 软件版本要求
所需的 SAP LT Replication Server 和 SAP 源系统版本有所不同,具体取决于您是在独立架构中的独立服务器上安装 SAP LT Replication Server,还是在嵌入式架构的源 ABAP 应用系统中安装 SAP LT Replication Server。
SAP 软件要求也有所不同,具体取决于您用作数据源的 SAP 系统是 SAP S/4HANA 还是 SAP ECC。
要查看 Google Cloud 用于支持 BigQuery Connector for SAP 的 SAP 软件版本,请选择与您的 SAP 源系统相对应的标签页:
S/4HANA
安装架构 | 系统 | 支持的版本 | 界面 (UI) 插件 |
---|---|---|---|
独立版本 | 源系统 |
|
SAP_UI 组件必须与您的 SAP Netweaver 版本兼容。 /UI2/CL_JSON:PL12 或更高版本。 如需了解 SAP 插件兼容性,请参阅: |
SAP LT Replication Server 系统 |
|
||
嵌入式 | 源系统 |
|
ECC
安装架构 | 系统 | 支持的版本 | 界面 (UI) 插件 |
---|---|---|---|
独立版本 | 源系统 |
|
SAP_UI 组件必须与您的 SAP Netweaver 版本兼容。 /UI2/CL_JSON:PL12 或更高版本。 如需了解 SAP 插件兼容性,请参阅: |
SAP LT Replication Server 系统 |
|
||
嵌入式 | 源系统 |
|
操作系统要求
BigQuery Connector for SAP 支持 SAP LT Replication Server 所支持的任何操作系统。
如需了解 SAP LT Replication Server 支持的操作系统,请参阅 SAP 产品可用性矩阵。
gcloud CLI 要求
BigQuery Connector for SAP 要求将 Google Cloud CLI 安装在 SAP LT Replication Server 主机上。
如果 SAP LT Replication Server 在 Google Cloud 上运行,并且您使用的是 Compute Engine 提供的操作系统映像,则系统可能会为您预安装 gcloud CLI。
如需了解哪些操作系统映像包含 gcloud CLI,请参阅操作系统详细信息中与您的操作系统对应的表。
如需检查现有 SAP LT Replication Server 主机上是否安装了 gcloud CLI,请登录服务器并发出任何 gcloud
命令。例如:
gcloud version
如果您的 SAP LT Replication Server 主机上未安装 gcloud CLI,您的 SAP 管理员可以安装它。如需详细了解如何安装 gcloud CLI,请参阅安装 gcloud CLI。
支持的复制源
BigQuery Connector for SAP 支持 SAP LT Replication Server 支持的大多数常用应用和数据库源系统。
支持的 SAP 应用源
您可以从 SAP LT Replication Server 支持的 SAP 应用源复制数据。
但是,SAP 建议不要使用 SAP LT Replication Server 从 SAP Business Warehouse 复制数据。如需查看 SAP 提供的更多信息,请参阅 SAP 说明 2525755。
不支持 SAP Cloud 应用,例如 S/4HANA Cloud、SAP Ariba、SAP SuccessFactors 等。
支持的数据源
您只能复制透明表或聚簇表。
BigQuery Connector for SAP 不支持复制 SAP Core Data Services (CDS) 视图。
安全
在实现从 SAP LT Replication Server 到 BigQuery 的数据复制的安全性时,您需要在 SAP LT Replication Server、SAP LT Replication Server 主机操作系统和 Google Cloud 中实现安全控制。
SAP 安全性
如需控制谁可以在 SAP LT Replication Server 中配置和使用 BigQuery Connector for SAP,请使用基于 SAP 角色的标准授权。
BigQuery Connector for SAP 在传输安装过程中提供授权对象 ZGOOG_MTID
。
要配置和运行使用 BigQuery Connector for SAP 的数据复制作业,您可以在 SAP LT Replication Server 中定义具有管理员权限的角色,如为 BigQuery Connector for SAP 创建 SAP 角色和授权中所述。
例如,您可以定义一个名为 ZGOOGLE_BIGQUERY_ADMIN
的角色,该角色具有使用 BigQuery Connector for SAP 配置和操作 BigQuery 数据复制所需的所有 SAP 授权和 ZGOOG_MTID
授权。
如需详细了解 SAP 提供的角色和授权信息,请参阅 SAP 帮助门户中 SAP LT Replication Server 的《安全指南》。
Google Cloud 安全性
在 Google Cloud 上实现 BigQuery Connector for SAP 的安全性可能涉及以下安全控制措施:
- Identity and Access Management (IAM) 权限、角色、服务账号和密钥。
- 在数据集或表级层设置的 BigQuery 控制措施。
- 适用于基于 API 的服务(如 BigQuery)的 Virtual Private Cloud (VPC) 服务控制措施。
Google Cloud Identity and Access Management
对于 BigQuery Connector for SAP 的身份验证和授权,您需要使用包含 BigQuery 数据集的 Google Cloud 项目中的 IAM 服务账号。
如需授权与 BigQuery 资源进行交互,请在 BigQuery 项目中向具有 BigQuery 交互权限的服务账号授予角色。
如果您在 BigQuery 项目中创建服务账号,则可以在创建服务账号时授予所需的角色,该服务账号会自动成为 BigQuery 项目中的主账号。
以下 IAM 角色包含 BigQuery Connector for SAP 访问 BigQuery 所需的权限:
- BigQuery Data Editor
- BigQuery Job User
如果 SAP LT Replication Server 在 Compute Engine 虚拟机上运行,则还需要向主机虚拟机的服务账号授予 Service Account Token Creator 角色。
如果 SAP LT Replication Server 在本地或其他云平台上运行,那么除了创建服务账号之外,您还需要为 BigQuery Connector for SAP 创建服务账号密钥。您的 SAP 管理员在 SAP LT Replication Server 主机上安装密钥。当 BigQuery Connector for SAP 连接到 BigQuery 时,SAP LT Replication Server 会使用该服务账号密钥向 Google Cloud 进行身份验证。
当 SAP LT Replication Server 在 Google Cloud 上运行时,不需要服务账号密钥。
如需详细了解 IAM、服务账号、角色和权限,请参阅:
BigQuery 数据集和表访问权限控制
除了 IAM 控制之外,您还可以使用 BigQuery 控制访问权限。对于 BigQuery Connector for SAP,您可以对数据集和表设置访问权限控制。
有关详情,请参阅:
VPC Service Controls
在 Google Cloud 上,VPC 防火墙规则不适用于与 BigQuery 进行的基于 API 的交互。您可以改为使用 Virtual Private Cloud (VPC) Service Controls 来限制流量。
如果您的 SAP 工作负载在 Google Cloud 上运行,您可以通过定义服务边界来实现 VPC Service Controls。如需了解详情,请参阅服务边界。
如果 SAP 工作负载不在 Google Cloud 上运行,您可以在设置本地主机的专用 Google 访问通道的过程中实现 VPC Service Controls。
如需详细了解 BigQuery 的网络安全,请参阅网络安全。
详细了解 Google Cloud 安全性
如需详细了解安全账号、角色和权限,请参阅:
网络
在规划用于复制到 BigQuery 的网络路径时,请考虑以下几点:
- 带宽
- 延迟时间及其对 SAP LT Replication Server 主机上的资源消耗的影响
- 数据量及其对任何现有网络负载的影响
- 如果您的 SAP 工作负载未在 Google Cloud 上运行,则您要使用哪种连接类型:Cloud Interconnect 或 Cloud VPN
连接至 Google Cloud
如果您的 SAP 系统未在 Google Cloud 上运行,并且您尚未建立从 SAP 系统到 Google Cloud 的连接,则需要建立连接并配置对 Google Cloud API 的专用访问权限。
您可以使用 Cloud Interconnect 或 Cloud VPN 建立与 Google Cloud 的连接。
与 Cloud VPN 相比,Cloud Interconnect 通常可提供更高的带宽、更短的延迟时间和更低的网络争用。对于大量性能敏感的复制作业,Google Cloud 建议为 BigQuery Connector for SAP 使用 Cloud Interconnect。
使用 Cloud VPN 时,您的复制数据会通过公共互联网传输,因此网络争用的可预测性较差且延迟时间通常较长。
无论您选择哪种连接方案,都需要检查您希望该连接支持的所有流量。确定连接是否具有足够的带宽和网络速度来支持复制作业和任何其他工作负载,而不会对这两者产生负面影响。
缓慢的连接会延长资源作业完成的时间(导致系统长时间占用复制所需的资源),从而增加 SAP 源服务器和 SAP LT Replication Server 主机上的资源消耗量。
如需详细了解您的连接选项,请参阅:
如果您使用代理服务器将 HTTP 请求发送到 Google Cloud,请在 SAP 事务 SICF
中配置代理服务器。如需了解配置步骤,请参阅关于配置代理的 SAP 文档。
带宽
确保 SAP LT Replication Server 和 BigQuery 之间的网络连接具有足够的带宽,可支持系统以所需速度传输您的数据量。
网络连接较慢会增加数据复制的延迟时间,这会增加复制在源 SAP 系统中使用的资源。
为了进行高效安装,Google Cloud 建议使用 Cloud Interconnect 连接。您也可以使用 Cloud VPN。
延迟时间
如需缩短网络连接的延迟时间,请尽可能靠近 SAP LT Replication Server 系统和 SAP 源系统创建目标 BigQuery 数据集。如果源 SAP 系统在 Google Cloud 上运行,请在源 SAP 系统所在的 Google Cloud 区域中创建 BigQuery 数据集。
在将安装迁移到生产环境之前先测试延迟时间。
如需详细了解网络性能,请参阅网络连接性能。
网络访问权限控制
您可以在 SAP LT Replication Server 与 Google Cloud 之间的连接两端实现网络访问权限控制。
Google Cloud 网络访问权限控制
BigQuery Connector for SAP 通过 API 端点与 BigQuery 通信,该端点不受 Google Cloud VPC 防火墙规则约束。
请改用 VPC Service Controls 来限制流量。
如需详细了解 BigQuery 的网络安全,请参阅网络安全。
SAP LT Replication Server 主机网络访问权限控制
在 SAP LT Replication Server 主机上,您需要确保所有防火墙或代理允许从服务器到 BigQuery API 端点的出站流量。具体而言,SAP LT Replication Server 需要能够访问以下 Google Cloud API:
- https://bigquery.googleapis.com
- https://iamcredentials.googleapis.com
性能规划
SAP LT Replication Server 和 BigQuery 之间初始加载和复制作业的性能受复制路径上不同点的多个因素的影响。
但与大多数其他因素相比,某些基本因素(例如 SAP LT Replication Server 与 BigQuery 数据集之间的距离或与 Google Cloud 的连接带宽)对性能的影响更大。
一般性能最佳实践
为了获得最佳性能,请在您的 SAP LT Replication Server 配置中应用以下建议:
- 在 Google Cloud 上运行 SAP 工作负载,包括 SAP 源系统和 SAP LT Replication Server。
- 如果 SAP 工作负载在 Google Cloud 上,请在 SAP 工作负载所在的区域中创建 BigQuery 数据集。
- 如果您无法在 Google Cloud 上运行 SAP 工作负载,请执行以下操作:
- 在距离 SAP 工作负载最近的 Google Cloud 区域中创建 BigQuery 数据集。
- 使用 Cloud Interconnect 连接到 Google Cloud。
- 为避免资源争用,请为 SAP 源系统和 SAP LT Replication Server 使用单独的专用主机。
- 根据 SAP 帮助门户中 SAP LT Replication Server 版本的《容量指南》,以最佳的方式为您的工作负载规划 SAP LT Replication Server 系统的容量。
- 使用以下 SAP LT Replication Server 复制设置:
- 并行作业。
- 读取类型 1(如果可能)。如需了解详情,请参阅性能和 LTRS 高级复制设置。
- 使用以下内容配置 BigQuery Connector for SAP:
- 默认记录压缩。
- 区块大小上限。
- 将字段映射到 BigQuery 表时,尽可能避免使用自定义名称。
有关详情,请参阅:
可能影响性能的其他特征
配置和数据的许多特征可能会影响性能。您可能无法修改其中一些特征。这些特征包括:
- 在源服务器上:
- CPU 数量。
- 内存量。
- 使用的数据库,例如 SAP HANA、SAP ASE、IBM Db2 或其他数据库。
- 源表中的列数。
- 每条记录包含的数据量。
- 表元数据,例如字段名称的长度。
- 对话工作进程的数量。
- 在 SAP LT Replication Server 上:
- CPU 数量。
- 内存量。
- 主机可能正在运行的其他工作负载。
- SAP 对话和后台工作进程。
- SAP LT Replication Server 安装架构的类型。如需了解详情,请参阅独立(推荐)或嵌入式 SAP LT Replication Server 安装。
- 在 SAP LT Replication Server 系统上运行的后台作业数量。
- 在
LTRC
事务的管理标签页上分配给批量传输的后台作业数量。 LTRS
事务性能设置,包括读取类型和部分大小。
- 在 BigQuery 复制配置(事务
/GOOG/SLT_SETTINGS
)中:- 是否为目标字段指定了自定义名称。处理目标 BigQuery 字段名称可能会对性能产生轻微影响。
- 是否启用了记录压缩。
- BigQuery Connector for SAP 区块大小,这可能会影响发送的 HTTP 请求总数。
SAP LT Replication Server 性能注意事项
以下部分讨论了与 SAP LT Replication Server 配置相关的性能选项。
性能和 SAP LT Replication Server 安装架构
与嵌入式架构(其中 SAP LT Replication Server 安装在源系统所在的服务器上)相比,独立架构(其中 SAP LT Replication Server 安装在其自己专用的服务器上)通常具有更好的性能。
在嵌入式架构中,SAP LT Replication Server 必须与 SAP 源系统共享服务器资源。
即使使用独立架构,主机的 CPU 和内存以及可能在服务器上运行的任何其他工作负载都会影响 SAP LT Replication Server 实例的性能。
性能和 LTRS
高级复制设置
初始加载和复制的性能会受到您在高级复制设置下的 LTRS
事务中为源表指定的设置的影响。
如需查看有关性能调整的指南,尤其是优化大容量初始加载或复制,请参阅 SAP 帮助门户中的《SAP LT Replication Server 性能优化指南》。
Google Cloud 建议在事务 LTRS
的高级复制设置 > 常规性能部分中指定以下内容:
对于从大多数表类型进行的初始加载,请指定 1 范围计算作为读取类型。对于 1 范围计算过大的表,请指定读取类型 5。
对于复制,请在有效设置下执行以下操作:
- 如需进行速度最快的复制,请指定自动范围。
- 如需进行比较可靠的复制,请指定无范围。
下表推荐了几种常见场景的设置。
表类型 | 推荐的读取类型 |
---|---|
透明(小型和中型) | 读取类型 1 - 范围计算 |
透明(大型) | 仅在读取类型 1 不起作用时使用读取类型 5 - 范围计算 |
聚簇表 | 读取类型 4 - 发送者队列 |
网络连接性能
SAP LT Replication Server 系统与 BigQuery 之间的连接的带宽和延迟时间可能会影响复制到 BigQuery 的整体性能。
它们不仅会影响复制速度,还会影响 SAP LT Replication Server 和源系统消耗的资源量,因为从 BigQuery 接收复制确认所需的时间越长,SAP LT Replication Server 和源系统保存主机资源的时间就越长。
如果您的 SAP 工作负载在本地或其他云服务商上运行,Google Cloud 建议使用 Cloud Interconnect 连接,该连接可实现高带宽和短延迟时间,而不必与公共互联网上的流量竞争。
您可以使用 Cloud VPN 连接到 Google Cloud 和 BigQuery,但是,使用 VPN 连接时,您的复制必须与常规互联网流量争用。
如果您的 SAP 工作负载在 Google Cloud 上运行,Google Cloud 建议将 SAP LT Replication Server 和 BigQuery 数据集放在同一区域。如果 SAP LT Replication Server 和 BigQuery 位于不同的区域,通常延迟时间会更长,性能会更差。如需详细了解如何选择区域,请参阅选择区域和可用区。
数据传输
通常,您希望在每个 HTTP 请求中发送尽可能多的数据,以减少 HTTP 请求总数和相关的处理开销。
但在某些情况下,由于特定表中的记录大小或者达到 BigQuery 中的配额上限或其他限制,您可能需要减少发送的数据量。
您可以通过以下方式控制每个请求中发送的数据量:
- 调整 SAP LT Replication Server 发送到 BigQuery Connector for SAP 的数据量(部分大小)。
- 调整 BigQuery Connector for SAP 发送到 BigQuery 的数据量(区块大小)。
- 调整 BigQuery 项目中流式插入的配额。
调整 SAP LT Replication Server 发送的数据量
SAP LT Replication Server 以部分方式将记录从源系统发送到 BigQuery Connector for SAP。每个部分都作为消耗服务器资源的单独加载或复制作业进行处理,直到其完成。
通常,如果您增加 SAP LT Replication Server 部分大小,则会减少 SAP LT Replication Server 进程的数量以及与其关联的开销。
部分大小和区块大小
SAP LT Replication Server 部分的大小以字节或字节数与记录数的乘积为单位。BigQuery Connector for SAP 分块的大小取决于它们可以包含的记录数。分块的字节大小因多种因素而异,包括记录中的字段数以及每个记录包含的数据量。
如果 SAP LT Replication Server 部分大小大于 BigQuery Connector for SAP 块的大小,则 BigQuery Connector for SAP 会为每个部分发送多个块,直到发送该部分的所有记录为止。
如果部分大小小于分块大小,则 BigQuery Connector for SAP 只会为每个部分发送一个分块。无论 BigQuery Connector for SAP 中设置的块大小如何,每个块都仅包含每个部分中发送的记录数。
理想情况下,在 SAP LT Replication Server 中设置一个部分大小,使 BigQuery Connector for SAP 能够创建最大的数据块,同时不超出 BigQuery 对每个 HTTP 请求中的字节数限制。
如需详细了解如何指定分块大小,请参阅 BigQuery Connector for SAP 中的分块大小。
SAP LT Replication Server 中的部分大小
如需更改 SAP LT Replication Server 使用的默认部分大小,请运行事务 LTRS
并调整高级复制设置的性能选项下的软件包大小字段中的值。
如需了解详情,请参阅 SAP 帮助门户中的《SAP LT Replication Server 性能优化指南》。
BigQuery Connector for SAP 中的区块大小
BigQuery Connector for SAP 会将数据作为记录块发送到 BigQuery。我们建议您使用 BigQuery Connector for SAP 允许的区块大小上限(即 10,000 条记录)。10,000 条记录也是 BigQuery Connector for SAP 使用的默认块大小。
如果给定块中的记录数解析为超出 BigQuery 对 HTTP 请求的字节大小限制的字节大小,您可能会收到 quotaExceeded
错误或 invalid
错误。
如果源表中的记录包含大量字段或字段包含大量数据,则可能会发生这种情况。
如果收到与分块大小相关的错误,请尝试减小在该表的批量传输配置中指定的分块大小。
对于 MSEG
、ACDOCA
和 MATDOC
等具有大量记录和大量字段的 SAP 源表,您可能需要指定低至 2,000 的区块大小。
您可以通过运行 /GOOG/SLT_SETTINGS
事务来指定分块大小。分块大小在表特性屏幕的分块大小字段中指定。
如需详细了解如何指定分块大小,请参阅:
如需详细了解 BigQuery 错误消息,请参阅错误消息。
与发送部分相关的处理开销
发送的每个部分都会触发以下操作,每项操作都会产生一些处理开销或资源消耗量:
- 源系统日志记录表中的一组更改记录在一个部分中发送到 SAP LT Replication Server。已更改的记录尚未从日志记录表中删除。
- SAP LT Replication Server 会从 Google Cloud 请求新的访问令牌。
- BigQuery Connector for SAP 会向 BigQuery 发送 HTTP 请求以检查目标表的结构。
- BigQuery Connector for SAP 会根据发送单个部分中收到的所有记录所需,按任意多个分块将记录发送到 BigQuery。每个分块都会在单独的 HTTP 请求中发送。
- BigQuery 会处理收到的每个分块。
- 系统会为每个分块向 SAP LT Replication Server 返回一个 HTTP
OK
状态代码。 - BigQuery 收到所有记录后,SAP LT Replication Server 从日志记录表中删除已发送的记录,这会最终释放源系统上的资源。
如需详细了解部分以及如何配置性能出色的 SAP LT Replication Server,请参阅 SAP 帮助门户中的《SAP LT Replication Server 性能优化指南》。
BigQuery 配额
对您的项目有效的 BigQuery 流处理 API 配额会限制一段时间内在任何一个 HTTP 请求中可以流式插入到 BigQuery 的数据量。
例如,BigQuery 对以下指标设置了限制:
- 您每秒可以针对每个项目发送的字节数。
- 单个 HTTP 请求中可以发送的记录数或行数上限。
- 您可以发送的 HTTP 请求的大小上限。
对于流式插入,BigQuery 会将 HTTP 请求的大小固定为 10 MB,并将单个 HTTP 请求中可发送的记录数固定为 50,000。
在大多数情况下,您可以更改配额,但不能更改限制。
您可以在 Google Cloud 控制台中的配额页面上查看和修改对您的项目有效的配额。
如需详细了解 BigQuery 流式插入的配额和限制,请参阅:
记录压缩
默认情况下,BigQuery Connector for SAP 通过压缩发送到 BigQuery 的记录来提高复制性能。
启用记录压缩(默认设置)后,BigQuery Connector for SAP 会从发送到 BigQuery 的记录中省略源记录中的空白字段。将记录插入 BigQuery 时,从发送的数据中省略的字段会在目标表中使用 null
进行初始化。
您可以通过在 BigQuery 表配置中指定发送未压缩标志来停用记录压缩,但这样做会对复制性能产生负面影响。
选中发送未压缩的标志后,BigQuery Connector for SAP 会将记录及其所有字段(包括任何空字段)发送到 BigQuery。除日期字段和时间戳字段外,空字段会保留在源表中初始化的任何值。日期和时间戳字段的初始化值会收到以下值:
- 日期字段初始化值:
DATE 1970-01-01
- 时间戳字段初始化值:
TIMESTAMP 1970-01-01 00:00:00 UTC
BigQuery 复制配置
通过 BigQuery Connector for SAP 配置复制时,您可以使用多种不同的 SAP 事务,包括 Google Cloud 提供的自定义事务:
SM30
- 定义用于连接到 Google Cloud 的属性,这些属性作为记录存储在自定义配置表/GOOG/CLIENT_KEY
中。LTRC
- 定义 BigQuery Connector for SAP 复制应用和大规模转移作业 ID 等属性/GOOG/SLT_SETTINGS
- 定义目标 BigQuery 数据集、表和字段的属性。在 SAP LT Replication Server 中输入/GOOG/SLT_SETTINGS
时,您必须添加/n
以对事务名称中的初始正斜杠进行转义。
语言支持
BigQuery Connector for SAP 2.1 版仅支持英语的复制配置。使用 SAP 事务和 Google Cloud 提供的自定义事务配置复制时,请在 SAP 登录屏幕上使用英语作为登录语言。
但是,BigQuery Connector for SAP 支持以 SAP SLT 支持的所有语言执行在 SAP LT Replication Server 上运行的后台作业。
无论后台作业执行语言是什么,您在使用 BigQuery Connector for SAP 时可能遇到的任何错误消息均以英语生成。
目标表属性
通过运行 /GOOG/SLT_SETTINGS
事务在 SAP LT Replication Server 中配置复制时,您可以指定在 BigQuery Connector for SAP 创建 BigQuery 中的目标表时应用的设置。
例如,您可以为目标 BigQuery 表指定以下属性:
- 表名称
- 字段的默认命名选项
- 用于捕获记录更改和启用记录计数查询的额外字段
- 表分区
字段的默认命名选项
您可以配置 BigQuery Connector for SAP,以根据源字段的名称或源字段的标签和说明为目标 BigQuery 表中的字段创建名称。标签和说明通常提供了有关字段内容的更多信息。
默认情况下,BigQuery Connector for SAP 使用源字段的名称。
您可以通过在 /GOOG/SLT_SETTINGS
事务的大规模转移作业配置的表创建特性中指定自定义名称标志来更改默认值。指定的内容存储在 /GOOG/BQ_MASTR
配置表中。
创建名称时,BigQuery Connector for SAP 会对其进行修改,使其符合 BigQuery 命名惯例。
在创建表之前,您可以在 /GOOG/SLT_SETTINGS
事务的字段映射屏幕中修改字段名称。
当自定义名称标志已指定时,BigQuery Connector for SAP 在创建目标表时将使用的名称会显示在字段映射屏幕的外部字段名称列中。
BigQuery Connector for SAP 会根据每个源字段的中等字段标签在外部字段名称列中创建名称。如果未在来源字段定义中指定中等字段标签,则使用字段的简短说明。如果未指定简短说明,则使用最短的指定标签。如果未指定任何内容,则使用来源字段的名称。
如需详细了解如何自定义目标字段名称,请参阅自定义目标字段名称。
捕获记录更改并启用记录计数
要捕获源表中触发复制的更改类型,并且能够查询 BigQuery 表中的记录计数以便与 SAP LT Replication Server 或源表中的记录计数进行比较,请在配置复制时,指定 /GOOG/SLT_SETTINGS
事务中的额外字段标志选项。
指定额外字段标志选项后,系统会将以下列添加到目标 BigQuery 表的架构:
字段名称 | 数据类型 | 说明 |
---|---|---|
operation_flag
|
STRING
|
标识将会触发将记录加载或复制到 BigQuery 的源表中的更改类型。
要计算在复制模式下插入的记录,请查询
要计算在初始加载模式下插入的记录,请查询 |
is_deleted
|
BOOLEAN
|
如果为 true ,则表示从源表中删除了源记录。
如需仅计算 BigQuery 表中尚未从源表中删除的记录,请使用 |
recordstamp
|
TIMESTAMP
|
SAP LT Replication Server 将记录发送到 BigQuery 的时间。 要计算 BigQuery 表中的唯一记录数,请仅查询每条记录最近插入的实例。如需查看示例查询,请参阅查询 BigQuery 表中的记录总数。 |
额外字段标志选项的当前设置存储在 /GOOG/BQ_MASTR
配置表中。
如需详细了解如何指定 额外字段标志,请参阅:
- 如果 SAP LT Replication Server 在 Compute Engine 虚拟机上运行,请参阅指定表创建和其他常规特性。
- 如果 SAP LT Replication Server 在 Google Cloud 外部的主机上运行,请参阅指定表创建和其他常规特性。
表分区
您可以创建 BigQuery 表,这些表按源表中的时间戳字段(创建时间单位列分区表)或记录插入 BigQuery 的时间(创建注入时间分区表)进行分区。
在配置复制属性时,您可以通过在 /GOOG/BQ_TABLE
的分区类型字段中指定分区类型来启用分区。
您可以指定的分区类型会按小时、天、月或年调整分区的粒度。
如需使用源表中的时间戳进行时间单位列分区,请在分区字段 (Partition Field) 字段中指定源字段的名称。
如需使用 BigQuery 插入时间进行注入时间分区,您可以将分区字段 (Partition Field) 字段留空。BigQuery Connector for SAP 会在目标表中创建一个字段来存储插入时间。
目标字段属性
默认情况下,BigQuery Connector for SAP 使用 SAP 源表中的字段名称和数据类型作为目标 BigQuery 中的字段名称和数据类型。
(可选)在创建目标表之前,您可以自定义字段名称或更改 BigQuery 数据类型。
自定义目标字段名称
在创建表之前,您可以自定义目标字段名称。
如有必要,BigQuery Connector for SAP 会修改您指定的自定义名称,以符合 BigQuery 命名惯例。
配置复制时,您可以在 /GOOG/SLT_SETTINGS
事务的字段映射屏幕中查看字段名称。BigQuery Connector for SAP 将您的设置存储在 /GOOG/BQ_FIELD
配置表中。
在创建表之前,可以通过修改字段映射屏幕的临时字段名称列中生成的名称来指定自定义字段名称。如果您删除值并将临时字段名称字段留空,则 BigQuery Connector for SAP 将使用源字段名称作为目标字段名称。
更改临时字段名称后,当您点击保存时,BigQuery Connector for SAP 会验证该值,根据需要应用 BigQuery 命名惯例,然后保存更改。您可以按 Enter 键验证值而不保存。
如需了解如何设置目标字段的默认命名方法,请参阅字段的默认命名选项。
使用电子表格或文本文件修改 BigQuery 字段映射
在创建目标 BigQuery 表之前,您可以选择将目标字段的默认数据类型、名称和说明保存到电子表格或文本文件,以便 BigQuery 数据工程师或管理员无需访问 SAP LT Replication Server 即可轻松修改这些值。
修改值后,您需要将文件及其内容转换为逗号分隔值 (CSV) 格式。然后,您可以使用自定义事务 /GOOG/SLT_SETTINGS
上传 CSV 文件,从而将更新应用于批量传输作业设置。
使用 CSV 文件修改 BigQuery 字段映射的过程包括以下步骤:
- 创建默认字段映射的电子表格或文本文件。
- 修改值。
- 将电子表格或文本文件转换为 CSV 格式。
- 上传 CSV 文件。
如需了解每个步骤的详细说明,请参阅在 CSV 文件中修改 BigQuery 字段映射。
BigQuery 字段命名惯例
BigQuery 命名惯例仅使用小写字母、数字和下划线。
BigQuery Connector for SAP 将 BigQuery 命名惯例应用于任何用于目标字段名称的输入值。
例如,如果您输入 FIELD-@#!*123
作为自定义字段名称,则 BigQuery Connector for SAP 会将该名称更改为 field_123
。
如需详细了解 BigQuery 字段命名惯例,请参阅列名称。
数据类型映射
默认情况下,BigQuery Connector for SAP 会根据源 SAP 字段的 SAP 类型种类或 SAP 数据类型将数据类型分配给目标 BigQuery 字段。
配置复制时,您可以在 /GOOG/SLT_SETTINGS
事务的字段映射屏幕中查看数据类型。BigQuery Connector for SAP 将您的设置存储在 /GOOG/BQ_FIELD
配置表中。
在创建表之前,您可以在字段映射屏幕的外部数据元素 (External Data Element) 列中将默认数据类型规范更改为其他 BigQuery 数据类型。
需要特殊处理的数据类型
多种 SAP 数据类型需要特殊处理,以便在目标 BigQuery 表中准确表示。
您必须自行处理其中一些数据类型。BigQuery Connector for SAP 会为您处理其他数据类型。
布尔值
对于布尔值,SAP 使用数据类型 CHAR
,默认情况下,BigQuery Connector for SAP 会将其映射到目标 BigQuery 表中的 STRING
数据类型。
因此,对于布尔值,当您使用 /GOOG/SLT_SETTINGS
事务配置复制时,您需要将字段映射屏幕中的布尔值字段的默认数据类型分配从 STRING
更改为 BOOLEAN
。
时间戳
对于时间戳,SAP 使用数据类型 P
(打包小数)或 DEC
(小数),默认情况下,BigQuery Connector for SAP 将其映射到目标 BigQuery 表中的 NUMERIC
。
因此,对于时间戳,当您使用 /GOOG/SLT_SETTINGS
事务配置复制时,您需要将字段映射屏幕中的时间戳字段的默认数据类型分配从 NUMERIC
更改为 TIMESTAMP
或TIMESTAMP (LONG)
。
X
SAP 类型种类
X
SAP 类型种类为十六进制,由 RAW
、RAWSTRING
或 LRAW
SAP 数据类型表示。默认情况下,BigQuery Connector for SAP 会将这些数据类型映射到源 BigQuery 表中的 STRING
。
如果您需要使用 X
要映射到的 SAP 类型种类 BYTES
,则需要更改 /GOOG/SLT_SETTINGS
事务的字段映射屏幕中字段的默认数据类型分配。
X
SAP 类型种类有时还会用于 SAP 来表示整数。在此情况下,BigQuery Connector for SAP 会检查源字段的数据类型中是否存在以下某种 SAP 整数数据类型:INT1
、INT2
、INT4
、INT8
,并在目标 BigQuery 表中分配 INTEGER
数据类型。
y
SAP 类型种类
y
SAP 类型种类为字节字符串,由 RAW
、RAWSTRING
或 LRAW
SAP 数据类型表示。默认情况下,BigQuery Connector for SAP 会将这些数据类型映射到源 BigQuery 表中的 STRING
。
如果您需要使用 y
要映射到的 SAP 类型种类 BYTES
,则需要更改 /GOOG/SLT_SETTINGS
事务的字段映射屏幕中字段的默认数据类型分配。
默认数据类型映射
下表展示了 BigQuery Connector for SAP 的默认数据类型转换:
SAP 类型种类 | SAP 数据类型 | BigQuery 数据类型 | 备注 |
---|---|---|---|
b (1 个字节的整数)s (2 个字节的整数)I (4 个字节的整数)8 (8 个字节的整数)
|
INT1 INT2 INT4 INT8
|
INTEGER |
|
F (浮点数)
|
FLTP
|
FLOAT |
|
P (打包小数)
|
CURR DEC QUAN
|
NUMERIC |
默认情况下,SAP 类型种类 P 会映射到 BigQuery 数据类型 NUMERIC ,并转换为采用外部格式的数字。 |
N (数字) |
NUMC |
STRING |
|
X (十六进制)y (字节字符串)
|
RAW RAWSTRING LRAW
|
STRING |
如果 SAP 类型种类为 X ,但数据类型名称涵盖模式 'INT*' (INT1 、INT2 、INT4 ),源数据元素将被替换为新的数据元素 TYPINT8 以及 TYPEKIND '8' ,该值已映射到 BigQuery 数据类型 INTEGER 。 |
C (字符)g (字符串)? (csequence)& (clike)
|
CHARSTRING |
STRING |
|
D (日期) |
DATS |
DATE |
|
T (时间) |
TIMS |
TIME |
支持生命周期
Google Cloud 支持并维护 BigQuery Connector for SAP 的当前主要版本,并且持续到发布弃用通知(在 SAP on Google Cloud 的“版本说明”页面)后至少 12 个月内。