BigQuery Connector for SAP 问题排查指南

通过使用 SAP LT Replication Server 应用日志记录和 Google Cloud 日志查看错误和日志消息,您可以排查 BigQuery Connector for SAP 2.7 版(最新版)的问题。

BigQuery Connector for SAP 会将所有错误发送到标准 SAP LT Replication Server 应用日志。

您还可以使用 SAP LT Replication Server 调试来找出问题。

问题排查概览

排查 BigQuery Connector for SAP 的问题时,您可能需要注意多个不同方面,具体取决于您调查的问题领域或范围:

  • 基础架构,例如网络、硬件或操作系统。
  • SAP 软件,包括源服务器和 SAP LT Replication Server。
  • BigQuery Connector for SAP。
  • BigQuery(包括 BigQuery API 和目标表)。

涉及合适的团队

在排查问题时,您需要做的第一件事是确定问题的领域和范围。

要解决问题,您可能需要与多个团队合作,例如 Basis 管理员、SAP LT Replication Server 管理员、DBA 或 Google Cloud 安全管理员。

尽早联系相应的团队以及准备好相应的技能可以帮助您更快地解决问题。

确定根本原因

您需要确定问题的根本原因,并确保您认为可能的原因实际上不是其他问题的根本原因。

SAP 系统紧密集成,但可以将日志和跟踪记录写入多个不同位置的文件。排查问题时,您需要确定要查看的正确日志和跟踪记录文件。

检查软件要求和前提条件

确保所有系统软件都在所需的最低版本上运行,并且满足 BigQuery Connector for SAP 的所有前提条件。

如需了解 BigQuery Connector for SAP 安装前提条件,请参阅:

  • 如果 SAP LT Replication Server 在 Compute Engine 虚拟机上运行,请参阅前提条件

  • 如果 SAP LT Replication Server 运行在 Google Cloud 外部的主机上,请参阅前提条件

如需了解 BigQuery Connector for SAP 软件要求,请参阅软件要求

如果您使用的是旧版 ECC 软件,请确保 SAP LT Replication Server 版本与您的 ECC 版本兼容。如需了解详情,请参阅 SAP 说明 2577774 - 源和目标系统的版本兼容性 - SLT

对于 SAP 源系统和 SAP LT Replication Server,请确保为基于 ABAP 的迁移和复制技术实施所有更正说明。如需了解详情,请参阅 SAP 说明 3016862 - DMIS 说明分析器,其中包含基于 ABAP 的迁移和复制技术的隔离场景

阅读 SAP 支持文档

如果您拥有 SAP 用户账号,则可以通过阅读 SAP ONE Support Launchpad 中提供的 SAP 说明和 SAP 知识库文章,找到许多 SAP 软件问题的解决方法。

日志记录

BigQuery Connector for SAP 将其日志消息发送到 SAP LT Replication Server,您可以在其中的 SAP LT Replication Server 应用日志里查看这些日志消息。

这些消息包括 BigQuery Connector for SAP 从 BigQuery API 接收的消息。

您可以在 Google Cloud 控制台中查看常规 BigQuery 日志消息。

SAP LT Replication Server 应用日志

所有错误消息都会保存到标准 SAP LT Replication Server 应用日志。检查应用日志以分析问题的根本原因并进行问题排查。

您可以通过运行事务 LTRC、打开配置并选择应用日志来显示特定于 SAP LT Replication Server 配置的应用日志。

显示日志后,选择一个表行,然后可以点击按钮来显示任何错误消息。如果点击某复制的应用日志标签页,则可以过滤该复制的相关运行时日志消息。

BigQuery Connector for SAP 生成的消息

在系统将记录发送到 BigQuery 之前,BigQuery Connector for SAP 中出现的任何错误都会添加 /GOOG/SLT 前缀。

从 BigQuery API 返回的任何错误都以 /GOOG/MSG 为前缀。其中包括所有 HTTP 错误。

如果错误没有以上述任何值作为前缀,则说明错误是由 SAP LT Replication Server 发出的。

BigQuery 日志

BigQuery 会将各种日志条目写入 Google Cloud 控制台中的 Cloud Logging。

如需查看 BigQuery 日志条目,请执行以下操作:

  1. 在 Google Cloud 控制台控制台中,打开“日志记录”:

    转到日志浏览器

  2. 查询编辑器中,指定 BigQuery 资源。例如:

    resource.type="bigquery_dataset"

如需详细了解 BigQuery 日志,请参阅日志

HTTP 跟踪记录

排查错误时,您可以在事务 SMICMST05 中启用 HTTP 跟踪记录。

为了限制对性能的影响,请在完成后立即停用 HTTP 跟踪记录。

调试

如果您拥有所需的授权,则可以调试 BigQuery Connector for SAP 的业务插件 (BAdI) 代码。

如需调试 BAdI 代码,请执行以下操作:

  1. 如果您还没有调试 BAdI 代码所需的 SAP 授权,请向 SAP 管理员申请。

  2. 如需启用调试,请在 SAP GUI 的事务条目字段中输入 /h,然后按 Enter

  3. 设置菜单中,选择更改 Debugger 配置文件/设置 (Change Debugger Profile/Settings)。

  4. Debug Modes(调试模式)下,确保选中 System Debugging(系统调试)。

  5. 根据需要在代码中设置外部断点。

监控

您可以监控从 SAP 数据源到目标 BigQuery 表的数据路径中的几个不同点,包括:

  • 基础架构 - 网络、硬件和操作系统
  • SAP 数据库层
  • SAP 应用层
  • BigQuery Connector for SAP
  • BigQuery

如需详细了解每个点的监控,请参阅 BigQuery Connector for SAP 操作指南

数据协调

您可以在以下三个点检查记录计数:

  • 源表
  • 事务 LTRC 中的 SAP LT Replication Server 加载或复制统计信息
  • BigQuery 目标表

您可以使用复制验证工具来检查和比较记录计数,也可以通过执行 SQL 查询来自行检索记录。

如需详细了解数据协调,请参阅 BigQuery Connector for SAP 操作指南

常见的配置问题

本部分介绍在 BigQuery Connector for SAP 的初始设置和配置期间可能出现的常见问题的解决方法。

SAP LT Replication Server 对数据库数据类型的支持

根据 SAP 软件版本,SAP LT Replication Server 可能不支持源数据库中的某些数据类型。如需了解详情,请参阅 SAP 说明 1605140 - SAP Landscape Transformation Replication Server (SLT)“重要注意事项”部分。

问题:访问令牌的操作系统命令在 OS LT Replication Server 中无法运行

问题:您创建了一条操作系统 (OS) 命令来输出访问令牌,但它无法在 SAP LT Replication Server 上运行。

原因:此问题可能由多个问题导致的,但最可能的原因是未正确配置操作系统命令所需的环境变量。

解决方法:确认操作系统命令已正确配置。

尝试以 SID_LCadm 身份从操作系统以及从 SAP 事务 SM69 运行 printenv 命令,并比较输出。如果事务 SM69 中返回的变量不完整,请尝试重启 SAP LT Replication Server 来注册变量。

问题:/GOOG/MSG: 400 - Bad Request Request contains an invalid argument

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 400 - Bad Request Request contains an invalid argument

原因:对于在 Google Cloud 上运行的 SAP 工作负载,客户端密钥表 /GOOG/CLIENT_KEY 中使用的访问权限范围无效。

解决方法:要解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/SLT_SETTINGS 事务:

    /n/GOOG/SLT_SETTINGS
  2. 对于在事务 LTRC 中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。

  3. 输入事务 SM30,然后打开表 /GOOG/CLIENT_KEY

  4. 对于您在前面的步骤中记下的 Google Cloud Key Name 值,请确保 Scope 字段的值与/GOOG/CLIENT_KEY 中指定访问权限设置中提到的访问权限范围匹配。 确保该字段中未输入空格。

  5. 重新运行复制。

问题:/GOOG/MSG : 400 - ICM_HTTP_CONNECTION_FAILED

问题:数据转移失败,并显示错误消息 /GOOG/MSG : 400 - ICM_HTTP_CONNECTION_FAILED

原因:在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,路径前缀的值或目标主机字段不正确。

解决方法:要解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/SLT_SETTINGS 事务:

    /n/GOOG/SLT_SETTINGS
  2. 对于在事务 LTRC 中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。

  3. 输入事务 SM30,然后打开表 /GOOG/SERVIC_MAP

  4. 对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下 RFC 目标名称。

  5. 输入 SM59 事务,然后完成以下步骤:

    1. 对于连接到 BigQuery 的 RFC 目标,请确保路径前缀字段值为 /bigquery/v2/

    2. 对于连接到 BigQuery 的 RFC 目标,请确保目标主机字段值为 bigquery.googleapis.com

    3. 对于连接到 IAM 的 RFC 目标,请确保路径前缀字段值为 /v1/

    4. 对于连接到 IAM 的 RFC 目标,请确保目标主机字段值为 iamcredentials.googleapis.com

  6. 重新运行复制或初始加载。

问题:/GOOG/MSG : 401 - Unauthorized Request is missing required authentication credential. Expected OAuth 2 access to ken, login coo

问题:数据转移失败,并显示错误消息 /GOOG/MSG : 401 - Unauthorized Request is missing required authentication credential. Expected OAuth 2 access to ken, login coo

原因:HTTP 端口配置缺失。

解决方法:您必须在 SAP 系统中创建并激活 HTTP 和 HTTPS 端口。

虚拟机元数据存储在元数据服务器上,该元数据服务器只能通过 HTTP 端口访问。因此,您必须确保 HTTP 端口以及 HTTPS 端口均已创建并且处于活跃状态,才能访问虚拟机元数据。

如需解决此问题,请完成以下步骤:

  1. 在 SAP GUI 中,输入事务代码 SMICM

  2. 在菜单栏上,点击转到 > 服务

  3. 确保 HTTP 和 HTTPS 端口已创建且处于活跃状态。Actv 列中的绿色对勾标记表示 HTTP 和 HTTPS 端口处于活跃状态。

  4. 重新运行复制。

如需了解如何配置 HTTP 和 HTTPS 端口,请参阅 ICM 中的 HTTP(S) 设置

问题:/GOOG/MSG : 401 - ICM_HTTP_CONNECTION_BROKEN

问题:在初始加载或复制期间,在 LTRC 事务中,数据传输失败并显示错误消息 /GOOG/MSG : 401 - ICM_HTTP_CONNECTION_BROKEN

原因:对于在 Google Cloud 上运行的 SAP 工作负载,在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,SSL 未激活。

解决方法:要解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/SLT_SETTINGS 事务:

    /n/GOOG/SLT_SETTINGS
  2. 对于在事务 LTRC 中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。

  3. 输入事务 SM30,然后打开表 /GOOG/SERVIC_MAP

  4. 对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下 RFC 目标名称。

  5. 输入事务 SM59,然后对您在上一步中记下的 RFC 目标执行以下步骤:

    1. 进入 Logon and Security(登录和安全)标签页。

    2. 对于 SSL Certificate(SSL 证书)字段,请确保已选中 DFAULT SSL Client (Standard)(默认 SSL 客户端 [标准])选项。

    3. 对于 Service No.(服务编号)字段,确保指定了值 443

  6. 重新运行复制。

问题 /GOOG/MSG: 110 - HTTPIO_PLG_CANCELED

问题:在初始加载或复制期间,在 LTRC 事务中,数据传输失败并显示错误消息 /GOOG/MSG: 110 - HTTPIO_PLG_CANCELED

原因:HTTP 端口配置缺失。

解决方法:您必须在 SAP 系统中创建并激活 HTTP 和 HTTPS 端口。

虚拟机元数据存储在元数据服务器上,该元数据服务器只能通过 HTTP 端口访问。因此,您必须确保 HTTP 端口以及 HTTPS 端口均已创建并且处于活跃状态,才能访问虚拟机元数据。

如需解决此问题,请完成以下步骤:

  1. 在 SAP GUI 中,输入事务代码 SMICM

  2. 在菜单栏上,点击转到 > 服务

  3. 确保 HTTP 和 HTTPS 端口已创建且处于活跃状态。Actv 列中的绿色对勾标记表示 HTTP 和 HTTPS 端口处于活跃状态。

  4. 重新运行复制。

如需了解如何配置 HTTP 和 HTTPS 端口,请参阅 ICM 中的 HTTP(S) 设置

问题:/GOOG/MSG: 403 - SSL is required to perform this operation

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 403 - SSL is required to perform this operation

原因:对于在 Google Cloud 上运行的 SAP 工作负载,在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,SSL 未激活。

解决方法:要解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/SLT_SETTINGS 事务:

    /n/GOOG/SLT_SETTINGS
  2. 对于在事务 LTRC 中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。

  3. 输入事务 SM30,然后打开表 /GOOG/SERVIC_MAP

  4. 对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下 RFC 目标名称。

  5. 输入事务 SM59,然后对您在上一步中记下的 RFC 目标执行以下步骤:

    1. 进入 Logon and Security(登录和安全)标签页。

    2. 对于 SSL Certificate(SSL 证书)字段,请确保已选中 DFAULT SSL Client (Standard)(默认 SSL 客户端 [标准])选项。

    3. 对于 Service No.(服务编号)字段,确保指定了值 443

  6. 重新运行复制。

问题:/GOOG/MSG: 403 - Request had insufficient authentication scopes

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 403 - Request had insufficient authentication scopes

原因:对于在 Google Cloud 上运行的 SAP 工作负载,在表 /GOOG/CLIENT_KEY 中,指定的服务账号没有访问 BigQuery 所需的范围。

解决方法:要解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/SLT_SETTINGS 事务:

    /n/GOOG/SLT_SETTINGS
  2. 对于在事务 LTRC 中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。

  3. 输入事务 SM30,然后打开表 /GOOG/CLIENT_KEY

  4. 对于您在前面的步骤中记下的 Google Cloud Key Name 值,请确保为 Service Account Name 字段指定的值为 default

  5. 在 Google Cloud 控制台中,前往 Compute Engine 虚拟机实例页面。

    打开“虚拟机实例”

  6. 点击托管 SAP LT Replication Server 的虚拟机实例。

  7. 点击停止,然后按照说明停止虚拟机实例。

  8. 点击修改,修改服务账号访问权限范围,以启用对 BigQuery 的访问权限,然后点击保存

  9. 点击启动/恢复以重启虚拟机实例。

  10. 确保您的 SAP LT Replication Server 正在运行。

  11. 重新运行复制。

问题:/GOOG/MSG: 403 - Access Denied: Dataset PROJECT_ID:DATASET_NAME: Permission bigquery.tables.created denied on dataset

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 403 - Access Denied: Dataset PROJECT_ID:DATASET_NAME: Permission bigquery.tables.created denied on dataset

原因:对于在 Google Cloud 上运行的 SAP 工作负载,在表 /GOOG/CLIENT_KEY 中,指定的服务账号没有访问 BigQuery API 所需的权限。

解决方法:要解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/SLT_SETTINGS 事务:

    /n/GOOG/SLT_SETTINGS
  2. 对于在事务 LTRC 中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。

  3. 输入事务 SM30,然后打开表 /GOOG/CLIENT_KEY

  4. 对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下为 Service Account Name 字段指定的值。

  5. 在 Google Cloud 控制台中,转到 Identity and Access Management 服务账号页面。

    转到“服务账号”

  6. 选择您在前面的步骤中记下的服务账号。

  7. 确保服务账号具有 BigQuery Connector for SAP 访问 BigQuery 所需的 IAM 角色,如 Google Cloud Identity and Access Management 中所述。

  8. 重新运行复制。

问题:/GOOG/MSG: 404 - Not Found

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 404 - Not Found

原因:在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,路径前缀不正确。

解决方法:要解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/SLT_SETTINGS 事务:

    /n/GOOG/SLT_SETTINGS
  2. 对于在事务 LTRC 中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。

  3. 输入事务 SM30,然后打开表 /GOOG/SERVIC_MAP

  4. 对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下 RFC 目标名称。

  5. 输入 SM59 事务,然后完成以下步骤:

    • 对于连接到 BigQuery 的 RFC 目标,请确保路径前缀字段值为 /bigquery/v2/
    • 对于连接到 IAM 的 RFC 目标,请确保路径前缀字段值为 /v1/
  6. 重新运行复制。

问题:/GOOG/MSG: 404 - Table PROJECT_ID:DATASET_NAME.TABLE_NAME not found

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 404 - Table PROJECT_ID:DATASET_NAME.TABLE_NAME not found

原因:在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,您为 Target Host 字段指定的值与 Cloud DNS 中的任何 DNS 名称都不匹配。

解决方法:要解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入事务代码 SE38,然后打开报告 /GOOG/R_SLT_SETTINGS

  2. 对于运行的 LTRC 事务,请打开批量传输 ID,然后记下 Google Cloud Key Name(Google Cloud 键名称)列中的值。

  3. 输入事务 SM30,然后在显示模式下打开表 /GOOG/CLIENT_KEY

  4. 使用您在前面的步骤中记下的 Google Cloud Key Name 搜索表 /GOOG/SERVIC_MAP,然后记下指定的 RFC 目标名称。

  5. 输入事务代码 SM59

  6. 对于用于连接到 BigQuery 和 IAM API 的 RFC 目标,请记下为 Target Host 字段指定的值。

  7. 在 Google Cloud 控制台中,转到网络服务 Cloud DNS 页面。

    转到 Cloud DNS

  8. 点击包含 Private Service Connect 端点的 DNS 记录的专用可用区,您创建的这些端点允许 BigQuery Connector for SAP 以私密方式连接到 BigQuery 和 IAM API。

  9. 确保您在前面的步骤中记下的每个目标主机值都有一条 DNS 记录,其中包含匹配的 DNS 名称

  10. 重新运行复制。

问题:/GOOG/MSG: 404 - Not Found Requested entity was not found

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 404 - Not Found Requested entity was not found

原因:对于在 Google Cloud 上运行的工作负载,客户端密钥表 /GOOG/CLIENT_KEY 中使用的服务账号无效。

解决方法:要解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/SLT_SETTINGS 事务:

    /n/GOOG/SLT_SETTINGS
  2. 对于在事务 LTRC 中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。

  3. 输入事务 SM30,然后打开表 /GOOG/CLIENT_KEY

  4. 对于 Service Account Name 字段,请确保指定的值是创建服务账号步骤中为 BigQuery Connector for SAP 创建的服务账号的电子邮件地址。

  5. 重新运行复制。

问题:/GOOG/MSG: 418 - 数据传输失败,并显示来自 SAP 的错误消息

问题:数据传输失败,并显示来自 SAP 的错误消息,例如 No OS command defined for the key

原因:对于不在 Google Cloud 上运行的 SAP 工作负载,此问题可能由以下情况引起:

输出访问令牌的操作系统命令未正确配置

原因:此问题可能由以下情况引起:

  • 您已创建操作系统 (OS) 命令以输出访问令牌,但尚未将其添加到客户端密钥表 /GOOG/CLIENT_KEY 的访问权限设置中。

  • 您在事务 SM69 中创建的操作系统命令无法从 Google Cloud 检索访问令牌。

解决方法:在客户端键表 /GOOG/CLIENT_KEY 中,对于字段命令名称,确保输入的值与您创建的用于打印访问令牌的命令的名称匹配。

RFC 未正确配置

原因:对于在 Google Cloud 上运行的 SAP 工作负载,在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,Target Host 字段值不正确。

解决方法:如需解决此问题,请执行以下操作:

  1. 在 SAP GUI 中,输入事务 SE38,然后打开报告 /GOOG/R_SLT_SETTINGS

  2. 对于运行的 LTRC 事务,请打开批量传输 ID 并记下 Google Cloud Key Name(Google Cloud 键名称)的值。

  3. 输入事务 SM30,然后在显示模式下打开表 /GOOG/CLIENT_KEY

  4. 使用您在前面的步骤中记下的 Google Cloud Key Name 搜索表 /GOOG/SERVIC_MAP,然后记下指定的 RFC 目标名称。

  5. 输入事务代码 SM59,然后打开您在前面的步骤中记下的 RFC 目标。

  6. 对于 Target Host 字段,请更正指定的网址。

  7. 重新运行复制。

问题:/GOOG/MSG: 413 - Request Entity Too Large

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 413 - Request Entity Too Large

原因:当 BigQuery Connector for SAP 发送的区块的字节大小超过 BigQuery 接受的 HTTP 请求的最大字节大小时,就可能出现此问题。如果表记录的大小或记录包含的数据量导致区块的字节大小超过 BigQuery 限制,则可能会出现此问题。

解决方法:减小 BigQuery Connector for SAP 为您的表发送的区块的大小。您可以通过运行事务 /GOOG/SLT_SETTINGS 来调整数据块大小,也可以启用动态数据块大小以自动调整数据块大小。如需了解详情,请参阅以下主题:

问题:/GOOG/MSG: 503 - HTTP Communication Failure - SSL client SSL Client (Standard)

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 503 - HTTP Communication Failure - SSL client SSL Client (Standard)

原因:对于在 Google Cloud 上运行的 SAP 工作负载,在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,Target Host 字段值不正确。

解决方法:如需解决此问题,请参阅 RFC 未正确配置中的解决步骤。

问题:/GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending

原因:此问题可能是由连接或网络问题引起的。

解决方法:验证您的连接,并确保网络设置正确、没有运行错误并且没有拥塞。

问题:/GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving

问题:数据转移失败,并显示错误消息 /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving

此问题可能由以下情况引起:

您的 RFC 目标中未激活 SSL

原因:在 BigQuery Connector for SAP 用于连接到 Google Cloud API 的 RFC 目标中,使用 SSL 证书的安全选项未激活。

解决方法:如需解决此问题,请参阅“问题:/GOOG/MSG: 403 - 需要使用 SSL 来执行此操作”中的解决步骤。

SSL 握手失败

原因:SAP LT Replication Server 主机和 BigQuery API 端点之间的 SSL 握手失败。如果 TLS 服务器提供的证书对 SAP LT Replication Server 提供的目标主机名无效(可能因为您的 NetWeaver 内核上未实现客户端发送可选 TLS 扩展 SNI),则可能会出现此问题。

解决方法:在事务 SMICM 中,查找返回代码 SSLERR_SERVER_CERT_MISMATCH。如果您发现返回代码 SSLERR_SERVER_CERT_MISMATCH,则需要启用发送 TLS 扩展 SNI。此外,请确保您的 NetWeaver 内核实现了客户端发送可选 TLS 扩展 SNI。

如要启用发送 TLS 扩展 SNI,请将配置文件参数 icm/HTTPS/client_sni_enabledssl/client_sni_enabled 设置为 TRUE,具体取决于您的 NetWeaver 内核版本。如需查看更多由 SAP 提供的信息,请参阅:

区块的字节大小超过 BigQuery 接受的 HTTP 请求的最大字节大小

原因:BigQuery Connector for SAP 发送的区块的字节大小超过 BigQuery 接受的 HTTP 请求的最大字节大小。如果表记录的大小或记录包含的数据量导致区块的字节大小超过 BigQuery 限制,则可能会出现此问题。

解决方法:减小 BigQuery Connector for SAP 为此表发送的区块的大小。您可以通过运行事务 /GOOG/SLT_SETTINGS 来调整数据块大小,也可以启用动态数据块大小以自动调整数据块大小。如需了解详情,请参阅以下主题:

问题:/GOOG/MSG: 404 - Not found: Dataset DATASET_NAME

问题:尝试验证 Google Cloud 安全性或将数据加载到 BigQuery 表时,您收到消息 /GOOG/MSG: 404 - Not found: Dataset DATASET_NAME

原因:此问题可能由以下情况引起:

  • 尚未创建 BigQuery 数据集。
  • 数据集名称未在大规模转移作业配置中正确指定。
  • 需要激活 SAP LT Replication Server 中的复制配置。

解决方法:尝试以下解决方法:

  • 确认已在 BigQuery 中创建数据集。
  • 检查大规模转移作业配置中的数据集名称是否与 BigQuery 中的数据集名称相同。
  • 运行 LTRC 事务,然后停用并重新激活复制配置。

问题:Mass Transfer Key can not be found for Mass Transfer ID XXX

问题:您收到错误 /GOOG/SLT: Mass Transfer Key can not be found for Mass Transfer ID XXX

原因:此问题可能由以下情况引起:

  • 指定的大规模转移作业 ID 不存在大规模转移作业配置。
  • 相应的复制配置未处于活动状态。

解决方法:如需解决此问题,请执行以下操作之一:

  • 运行 /GOOG/SLT_SETTINGS 事务,确认已正确指定批量传输 ID。
  • 运行 LTRC 事务,然后停用并重新激活复制配置。

问题:/GOOG/SLT : Unable to interpret VALUE as a BOOLEAN

问题:加载或复制记录失败,并显示消息 /GOOG/SLT : Unable to interpret VALUE as a BOOLEAN

原因:此问题是由源表中的字段映射到 BigQuery 数据类型 BOOLEAN,但源字段中的数据无法解析为布尔值导致的。

解决方法:如需解决此问题,请使用事务 /GOOG/SLT_SETTINGS 更改源字段映射到的数据类型,或移除数据类型映射并接受默认数据类型。

问题:/GOOG/SLT: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS

问题:加载或复制记录失败,并显示消息 /GOOG/SLT: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS

原因:源字段包含无效的值,或者源字段映射到的 BigQuery 数据类型不是源字段包含的数据的有效映射。

解决方法:要解决此问题,请使用事务 /GOOG/SLT_SETTINGS 更改源字段映射到的数据类型,或移除数据类型映射并接受数据类型的默认映射。

问题:/GOOG/MSG : Client key is not found in /GOOG/CLIENT_KEY table

问题:加载或复制无法启动,并显示消息 /GOOG/MSG: Client key is not found in /GOOG/CLIENT_KEY table

原因:客户端密钥不存在,或者在事务 /GOOG/SLT_SETTINGS 的大规模转移作业配置中未正确指定。

解决方法:要解决此问题,请使用事务 SM30 创建客户端密钥,或使用事务 /GOOG/SLT_SETTINGS 更正大规模转移作业配置中的客户端密钥值。

问题:/GOOG/MSG: DESCRIPTION_OF_ISSUE error occurred in chunk ranging START_INDEX_OF_FAILED_CHUNK - END_INDEX_OF_FAILED_CHUNK

问题:数据块的复制失败,并显示错误消息 /GOOG/MSG: DESCRIPTION_OF_ISSUE error occurred in chunk ranging START_INDEX_OF_FAILED_CHUNK - END_INDEX_OF_FAILED_CHUNK

原因:这可能有多个原因,包括 Invalid JSON PayloadQuota ExceededRequest Entity Too LargeHTTP Communication Failure。无法复制到 BigQuery 的数据块的错误消息会显示该数据块的起始和结束索引。

如果您尚未在事务 /GOOG/SLT_SETTINGS 中设置 BREAK 标志,则会显示此错误消息。如果未设置 BREAK 标志,则即使发生错误,BigQuery Connector for SAP 也会通过发送下一个数据块来继续向 BigQuery 发送记录。

解决方法:尝试以下解决方法:

问题:DESCRIPTION_OF_ISSUE while signing JWT using profile KEY_FILE_NAME.pse. Check JWT config in STRUST

问题:您收到错误 DESCRIPTION_OF_ISSUE while signing JWT using profile KEY_FILE_NAME .pse. Check JWT config in STRUST

原因STRUST 中的 JWT 配置和服务账号密钥设置未正确配置。

解决方法:确认已按照使用 JWT 获取访问令牌来进行身份验证部分所述配置 JWT 配置和服务账号密钥。

问题:Bad Request invalid_grant. Invalid JWT Signature

问题:您收到错误 Bad Request invalid_grant. Invalid JWT Signature

原因:导入 STRUST 的 PSE 或 P12 密钥文件不属于用于对 JWT 签名的服务账号。

解决方法:确保将正确的服务账号密钥文件导入 STRUST。如需了解如何将服务账号密钥导入到 STRUST 中,请参阅将服务账号密钥导入 STRUST

问题:/GOOG/MSG : 400 - Bad Request invalid_grant Invalid grant: account not found

问题:您无法连接到 Google Cloud APIs。

原因:用于 JWT 签名的服务账号不正确或没有所需的权限。

解决方法:确保您为基于 JWT 的令牌检索指定的服务账号已根据表 /GOOG/BQ_PARAM 中的参数 JWT_SERVC_ACCT 正确维护。如需了解详情,请参阅在 SAP LT Replication Server 主机上为服务账号启用 JWT 签名

问题:OAuth RFC HTTP Destination not maintained in /GOOG/SERVIC_MAP

问题:您收到错误 OAuth RFC HTTP Destination not maintained in /GOOG/SERVIC_MAP

原因:服务映射表 /GOOG/SERVIC_MAP 中未提供 OAuth 2.0 的 RFC 目标。

解决方法:在服务映射表 /GOOG/SERVIC_MAP 中更新 OAuth 2.0 的 RFC 目标,然后重新运行负载。如需了解如何指定 RFC 目标,请参阅/GOOG/SERVIC_MAP 中指定 RFC 目标

问题:对于非英语登录语言,使用 CSV 文件上传数据时,字段说明出现乱码

问题:对于非英语登录语言,当您使用文件上传选项上传 BigQuery 目标表字段类型和字段说明时,CSV 文件中的字段说明无法准确上传。您会在上传的说明中找到乱码字符和符号。

原因:对于非英语登录语言,文件上传实用程序无法准确解读 CSV 文件中的字符。

解决方法:如需上传非英语语言的 BigQuery 目标表字段类型和字段说明,请对 CSV 文件使用具有字节顺序标记 (BOM) 的 UTF-8 编码格式。以具有 BOM 的 UTF-8 格式保存 CSV 文件,然后上传该文件。

常见的操作问题

本部分介绍在初始设置 BigQuery Connector for SAP 之后可能出现的常见问题的解决方法。

问题:未在 BigQuery 数据集中创建 SAP 中的空源表

问题:未在 BigQuery 数据集中创建 SAP 中的空源表。

原因:对于 SAP 中的空源表,SAP SLT 会阻止在 BigQuery 中创建目标表。

解决方法:如需在 BigQuery 数据集中为 SAP 中的空源表创建目标表,您可以使用创建表工具。如需了解如何运行创建表工具,请参阅创建表工具

问题:BigQuery 中的写入次数不正确

问题:写入 BigQuery 的记录数量大于 SAP LT Replication Server 日志中显示的记录数量。

原因:这可能有多个原因,包括导致 SAP LT Replication Server 多次发送记录的暂时性连接问题,或者 BigQuery 表只接受插入,并且对源中单条记录的每次更改都作为单独的条目插入到目标表中。

解决方法:如果记录计数的差异不是特别大,并且 BigQuery 中的记录数不比源表中的记录数少,则这是预期行为,不是问题。

要准确地调整 BigQuery 中的记录数与源表中的记录数,请按照记录计数的 SQL 查询中的说明查询 BigQuery 表。

如需详细了解此问题的可能原因,请参阅有关 HANA 上 ABAP 源/目标的特殊注意事项

问题:/GOOG/MSG : 400 - Schema mismatch for table TABLE_NAME

问题:您收到错误消息 /GOOG/MSG : 400 - Schema mismatch for table TABLE_NAME. Please delete the table from BigQuery and try again.

原因:对现有 BigQuery 表输入了以下某项更改:

  • 删除字段
  • 重命名字段
  • 字段的数据类型的更改
  • 表的分区类型的更改

无法将上述更改应用于现有 BigQuery 表。

解决方法:如果您需要更改现有表中的这些字段特性中的任何特性,则需要删除现有表并将记录重新加载到新表中。

如果更改有误,请在 SAP LT Replication Server 中撤消更改。

如需详细了解如何在目标 BigQuery 表中配置字段和分区,请参阅 BigQuery 复制配置

问题:与无效数据相关的错误消息

问题:在应用日志中,您会收到错误消息:/GOOG/MSG/: DESCRIPTION_OF_INVALID_DATA error occurred in FIELD_NAME in record RECORD_KEYS

原因:在将任何包含无效数据的记录插入目标表时,BigQuery 会发出此错误消息。数据无效的原因可能是以下之一:

  • 特定记录的字段中的数据与 BigQuery 中的数据类型不兼容。例如,BigQuery 在以下情况下会生成错误消息:
    • DATEINTEGERBOOLEAN 类型的字段中保存字符串。
    • 在类型为 DATE 的字段中保存无效日期 (00/00/0000)。
  • 在事务 /GOOG/SLT_SETTINGS 中的字段映射中保存不正确的目标数据类型。

BigQuery 会为包含无效数据字段的每条记录发出错误消息。

解决方法:分析错误消息 DESCRIPTION_OF_INVALID_DATA,以了解无效数据的可能原因。要识别包含无效数据字段的记录,请使用 RECORD_KEYS,其中包含记录的前五个字段的内容。如果表包含的字段不超过 5 个,则所有字段的内容都将包含在 RECORD_KEYS 中。

  • 如果字段中的数据与 BigQuery 中的数据类型不兼容,请更正源表中的数据。
  • 如果错误是由于数据与数据类型不匹配所致,请使用事务 /GOOG/SLT_SETTINGS 指定适当的数据类型。如需详细了解数据类型映射,请参阅数据类型映射

问题:事务 SE16SE16N 中显示的字段的值与 BigQuery 中显示的值不同

问题:在某些情况下,事务 SE16SE16N 中显示的字段的值与 BigQuery 中显示的值不同。

原因:在 SAP S/4HANA 源系统中,MARDMARCMBEWMBEWH 等表具有兼容性视图,而这些视图会在事务 SE16SE16N 中显示值。对于此类表,事务 SE16SE16N 中显示的值是使用联接条件在兼容性视图内计算的,其中包括几个其他底层表。

当在 SLT 中配置具有兼容性视图的表以复制到 BigQuery 时,SLT 不会从兼容性视图复制数据。相反,SLT 会分别从每个基础表复制数据,因此您可能会注意到,与 BigQuery 中显示的值相比,某些字段在 SE16SE16N 中具有不同的值。这是标准的 SLT 行为。

解决方法:如需解决此问题,请按以下步骤操作:

  1. 在 SAP GUI 中,输入事务代码 LTRS
  2. 为 BigQuery 复制功能选择批量传输设置。
  3. 依次转到 Advanced Replication Settings(高级复制设置)> Table Settings(表设置)
  4. 选择使用兼容性视图的表。如果所需表未列出,请添加该表。
  5. Processing Settings(处理设置)部分中,为以下字段输入值:

    • View for Initial Load(初始加载视图):来自 SE16SE16N 的表的兼容性视图值。
    • View for Replication(复制视图):来自 SE16SE16N 的表的兼容性视图值。
  6. 保存设置。

或者,将兼容性视图的所有底层表都复制到 BigQuery。在 BigQuery 中,使用与兼容性视图相同的联接条件联接这些表。

如需详细了解 SAP 提供的有关一些已知表及其兼容性视图的信息,请参阅 SAP 说明 2595627 - 从 SE16/SE16N 访问表会向 SAP HANA 数据库显示不同结果

问题:Failed to create proxy table TARGET_TABLE_NAME for object SOURCE_TABLE_NAME

问题:使用 BigQuery Connector for SAP 将数据从 SAP HANA 传输到 BigQuery 时,表加载失败,并显示错误消息 Failed to create proxy table TARGET_TABLE_NAME for object SOURCE_TABLE_NAME

原因:源表中的一个或多个字段中的字符数超过了 SLT 设置的 30 个字符限制。

解决方法:尝试以下解决方法:

  • 如果表的键字段中的字符数超过 30,则您无法加载或复制此类表。这是 SLT 的已知限制。
  • 如果表的其他字段中的字符数超过 30,请创建一个视图,将超过 30 个字符的字段名称映射为较短的字段名称。

如需了解详情,请参阅 SAP 说明 1768805 - SAP Landscape Transformation Replication Server (SLT):非 ABAP 来源

获取支持

如果您需要帮助以解决复制问题和 BigQuery Connector for SAP 问题,请收集所有可用的诊断信息,并与 Cloud Customer Care 联系。

如需详细了解如何与 Cloud Customer Care 联系,请参阅获取 SAP on Google Cloud 支持