2.0 版:BigQuery Connector for SAP 问题排查指南

如需排查 BigQuery Connector for SAP 2.0 版和 2.1 版的问题,您可以使用 SAP LT Replication Server 应用日志记录和 Google Cloud 日志来查看错误和日志消息。

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 用户账号,则可以通过阅读 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 上运行。

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

解决方法:确认操作系统命令已正确配置。如需了解配置步骤,请参阅创建操作系统命令以输出访问令牌

尝试以 sidadm 身份从操作系统以及从 SAP 事务 SM69 运行 printenv 命令,并比较输出。

如果事务 SM69 中返回的变量不完整,请尝试重启 SAP LT Replication Server 来注册变量。

问题:/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 来调整区块大小。

如需了解如何调整区块大小,请参阅 BigQuery Connector for SAP 中的区块大小

问题:/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

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

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 来调整区块大小。如需了解详情,请参阅 BigQuery Connector for SAP 中的区块大小

问题:/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 更正大规模转移作业配置中的客户端密钥值。

常见的操作问题

本部分介绍在初始设置 BigQuery Connector for 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 指定适当的数据类型。如需详细了解数据类型映射,请参阅数据类型映射

获取支持

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

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