BigQuery Connector for SAP 概览

本指南概述了 BigQuery Connector for SAP,详细介绍了其功能以及如何促进 SAP 系统与 BigQuery 之间的数据集成。BigQuery Connector for SAP 可近乎实时地将 SAP 数据复制到 BigQuery 中。数据复制到 BigQuery 中后,您可以通过人工智能或机器学习对实时 SAP 应用数据执行分析。在 BigQuery 中,您还可以将 SAP 数据与其他来源的数据集成。

BigQuery Connector for SAP 会安装到 SAP Landscape Transformation Replication Server (SAP LT Replication Server) 上,并使用 SAP Landscape Transformation Replication Server 的标准接口和功能。BigQuery Connector for SAP 支持 SAP LT Replication Server 支持的所有数据源。

Google Cloud 按照 SAP LT Replication Server SDK 过程开发了 BigQuery Connector for SAP,作为 SAP LT Replication Server 的 SAP 业务插件 (BAdI) 的实现。 该连接器使用 SAP LT Replication Server 的变更数据捕获 (CDC) 功能。

数据处理

BigQuery Connector for SAP 仅允许进行最低限度的数据转换,并应符合“提取、加载、转换”模型 (ELT),而不是“提取、转换和加载”(ETL) 模型。如需详细了解这些模型,请参阅数据流水线的流程和模式

该连接器会根据源数据自动建议目标表的字段、字段名称和数据类型。在创建目标 BigQuery 表之前,您可以根据需要修改建议的值。 目标字段的建议名称基于源表中字段的说明。如需了解详情,请参阅字段的默认命名选项

虽然 BigQuery Connector for SAP 会自动建议大多数字段的 BigQuery 数据类型,但布尔值、时间戳和十六进制值无法自动解释,因此您需要手动映射它们。如需了解详情,请参阅数据类型映射

BigQuery Connector for SAP 提供了几个增强 Spot,您可以将自己的自定义增强功能插入 BigQuery Connector for SAP 代码中。如需了解详情,请参阅增强功能退出代码

如果 BigQuery 中不存在目标表,则 BigQuery Connector for SAP 会创建一个。 对于通过 Pub/Sub 进行的 CDC 复制,BigQuery Connector for SAP 还会自动创建必要的 Pub/Sub 主题、架构和订阅。

支持的复制路径

BigQuery Connector for SAP 支持以下复制路径:

通过 Pub/Sub 进行变更数据捕获 (CDC) 复制

通过 Pub/Sub 进行变更数据捕获 (CDC) 复制后,BigQuery 表会直接反映源 SAP 表中的更改,更新现有数据并添加新记录,以保持数据同步。此方法使用 Storage Write API 的 CDC 功能,无需手动去重。CDC 专注于仅捕获和应用源 SAP 表中发生的更改(更新、删除和新插入)。

更新或删除 SAP 表中的记录后,BigQuery Connector for SAP 会将此更改发布到 Pub/Sub 主题。然后,BigQuery 订阅会将其直接流式插入到相应的 BigQuery 表,并应用更改而不会出现重复。

流式数据复制

借助流式数据复制,BigQuery 表会不断附加新记录,以仅插入模式反映每项更改,并将其作为单独的条目显示。 如果 BigQuery 收到 BigQuery 表中现有记录的更新,则 BigQuery 会在该表中插入新的记录实例,而不会修改现有实例。最近插入的记录实例反映了源表中记录的当前状态。

对于流式数据复制,BigQuery Connector for SAP 使用 BigQuery 流式插入 API

下图展示了使用 BigQuery Connector for SAP 从 SAP 到 BigQuery 的两个数据复制路径:

复制到 BigQuery 的路径

每个路径的数据流和组件细分如下:

数据提取和初始处理(两个途径通用)

  • SAP 数据源:在 SAP 环境中生成数据。
  • SAP LT Replication Server:通过 RFC 连接连接到 SAP 数据源。其主要作用是从 SAP 来源提取 CDC 数据。
  • BigQuery Connector for SAP:接收提取的 CDC 数据,并根据配置确定数据将采用哪个复制路径。

CDC 复制路径

此路径专注于通过 Pub/Sub 将更改复制到 BigQuery CDC 表:

  • Pub/Sub REST API:BigQuery Connector for SAP 使用 Pub/Sub REST API 将 CDC 数据发布到 Pub/Sub。
  • Pub/Sub 主题:充当中央消息代理,接收已发布的 CDC 数据。
  • Pub/Sub 架构:该架构与 Pub/Sub 主题相关联,强制执行数据结构,从而保持数据一致性。
  • Pub/Sub BigQuery 订阅:订阅 Pub/Sub 主题并将 CDC 数据流式插入到 BigQuery CDC 表。
  • BigQuery CDC 表:BigQuery 中 CDC 数据的最终目标位置。它会应用更改(更新/删除)并插入新记录,从而保持 SAP 数据的去重最新视图。
  • 死信主题:一个 Pub/Sub 主题,其中包含未能通过 BigQuery 订阅处理的消息,以便进行进一步的人工调查,确保不会丢失任何数据。

流式数据复制(仅限插入)路径

此路径旨在将新记录持续插入到 BigQuery 临时表中,并将每次更改保存为新条目:

  • BigQuery Streaming REST API:BigQuery Connector for SAP 使用 BigQuery 流式插入 REST API 将数据直接流式插入到 BigQuery。
  • BigQuery 暂存表:流式数据的目标位置。 在此仅插入模式下,每次更改(包括对现有 SAP 记录的更新和删除)都会向此表附加新行。

选择复制路径

本部分将比较复制路径,帮助您确定哪个路径最适合您的特定数据需求和操作要求。

因素 通过 Pub/Sub 进行 CDC 复制 流式数据复制(仅插入模式)
工作原理 仅捕获并应用对 BigQuery 表的更改。 将每次更改都作为新记录插入到 BigQuery 表中。
BigQuery 结果 通过以原生方式更新或删除现有行,维护单个最新记录。 每次更改都会创建一个新条目,导致同一记录有多个版本。
主要优势 提供与最新数据的高度数据一致性。 适用于基本注入,并提供历史审核记录。

部署架构

您在 SAP LT Replication Server 实例中安装 BigQuery Connector for SAP 作为业务插件 (BAdI)。

SAP LT Replication Server 实例可以位于 Google Cloud、本地或其他云服务提供商。我们建议您将 SAP LT Replication Server 实例布置在尽可能靠近 SAP 数据源的位置。与您的网络团队协作,确保源 SAP 系统、SAP LT Replication Server 与 BigQuery 数据集之间的低延迟和高吞吐量。

以下部分介绍了 BigQuery Connector for SAP 的常见推荐架构。

通过 Pub/Sub 进行 CDC 复制的部署架构

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 直接连接到 Pub/Sub API 端点,无需建立 Cloud Interconnect 或 Cloud VPN 连接。

 Google Cloud上的 SAP 数据源架构

本地或其他云服务商上的 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 到 Pub/Sub 的连接由 Cloud Interconnect 连接或 Cloud VPN 连接提供。

本地或其他云服务商上的 SAP 数据源架构

数据流的详细架构视图

下图展示了 BigQuery Connector for SAP 在 SAP LT Replication Server 数据流中的位置:

数据流的详细架构视图

以下带编号的说明对应于图中的数字编号:

  1. SAP LT Replication Server 初始化后,当插入、更新或删除源表中的记录时,数据库触发器会在日志记录表中记录更改。
  2. SAP LT Replication Server 使用 RFC 调用持续检查日志记录表中是否有新条目。
  3. 如果 SAP LT Replication Server 找到新条目,读取引擎会读取记录并调用映射和转换引擎。
  4. 映射和转换引擎会调用写入引擎,后者会调用 BigQuery Connector for SAP。
  5. 写入引擎将处理后的数据传递给 BigQuery Connector for SAP。在此图中,连接器的自定义 BAdI 实现将 SAP 更改记录转换为符合 Avro 标准的 JSON 格式。它会填充以下特定元数据字段:
    1. _CHANGE_TYPE:根据 SAP SLT 操作填充。例如,UPSERT 表示插入或更新,DELETE 表示删除。
    2. _CHANGE_SEQUENCE_NUMBER:一种精细的时间戳,用于在 BigQuery 中按时间顺序排序和解决冲突。
    该连接器还会将 SAP 中的表和字段(名称和数据类型)映射到 BigQuery。
  6. 然后,BigQuery Connector for SAP 通过 Pub/Sub REST API,使用 HTTPS 通过安全连接将转换后的消息发布到 Pub/Sub。
  7. 收到数据后,Pub/Sub 会执行以下操作:
    1. 根据架构执行验证检查。
    2. 针对有效消息向 BigQuery Connector for SAP 发回 HTTP 200 (OK) 状态代码。
    3. 通过 BigQuery 订阅将记录插入到 BigQuery 目标表中。
    4. 在死信主题中捕获 BigQuery 注入失败的消息,从而防止数据丢失并简化问题排查。
  8. BigQuery Storage Write API 使用消息中的 _CHANGE_TYPE_CHANGE_SEQUENCE_NUMBER 字段应用更改。该 API 会执行插入、更新或删除操作,从而在 BigQuery 表中维护同步数据以供数据分析。
  9. BigQuery Connector for SAP 会将 HTTP OK 状态代码传递回 SAP LT Replication Server,后者会从日志记录表中删除复制的条目并释放 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 项目中,但您可以根据需要对这两者使用同一项目。

 Google Cloud上的 SAP 数据源架构

本地或其他云服务商上的 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 连接提供。

本地或其他云服务商上的 SAP 数据源架构

数据流的详细架构视图

下图展示了 BigQuery Connector for SAP 在 SAP LT Replication Server 数据流中的位置:

数据流的详细架构视图

以下带编号的说明对应于图中的数字编号:

  1. SAP LT Replication Server 初始化后,当插入、更新或删除源表中的记录时,数据库触发器会在日志记录表中记录更改。
  2. SAP LT Replication Server 使用 RFC 调用持续检查日志记录表中是否有新条目。
  3. 如果 SAP LT Replication Server 找到新条目,读取引擎会读取记录并调用映射和转换引擎。
  4. 映射和转换引擎会调用写入引擎,后者会调用 BigQuery Connector for SAP。
  5. BigQuery Connector for SAP 会执行以下操作:
    1. 将 SAP 数据映射到目标表名称、字段名称和 BigQuery 数据类型。
    2. 创建 BigQuery 表(如有必要)。
    3. 通过 BigQuery 流式插入 API 将记录分块发送到 BigQuery。
  6. 收到数据后,BigQuery 会执行以下操作:
    1. 执行验证检查。
    2. 将记录插入目标表中。
    3. 向 BigQuery Connector for SAP 发回 HTTP 200 (OK) 状态代码。
  7. BigQuery Connector for SAP 会将 HTTP OK 状态代码传递回 SAP LT Replication Server,后者会从日志记录表中删除复制的条目并释放 SAP 源系统上的资源。

后续步骤

如需了解如何规划 BigQuery Connector for SAP 的安装和配置,请参阅 BigQuery Connector for SAP 规划指南