本文档向 SAP 管理员、SAP 开发者或其他人员介绍了如何排查 BigQuery Toolkit for SAP 的问题。
常见问题
本部分列出了 BigQuery Toolkit for SAP 特有的常见错误消息及其解决方法。
如需了解如何常规排查 ABAP SDK for Google Cloud 问题,请参阅对本地版本或任何云版本的 ABAP SDK for Google Cloud 进行问题排查。
/GOOG/BQTR: Mass Transfer Key is required. Use Tcode /GOOG/BQTR_SETTINGS to maintain
问题:数据转移失败,并显示错误消息 /GOOG/BQTR: Mass Transfer Key is required. Use Tcode /GOOG/BQTR_SETTINGS to maintain
。
原因:调用数据加载类 /GOOG/CL_BQTR_DATA_LOAD
时,未在 IV_MASS_TR_KEY
参数中提供大规模转移密钥。
解决方法:如需解决此问题,请传递保存在事务 /GOOG/BQTR_SETTINGS
中的批量转移密钥。如需了解详情,请参阅调用数据复制方法。
/GOOG/BQTR: Data Source is required. Pass a dictionary object
问题:数据转移失败,并显示错误消息 /GOOG/BQTR: Data Source is required. Pass a dictionary object
。
原因:调用数据加载类 /GOOG/CL_BQTR_DATA_LOAD
时,未在 IV_DATA_SOURCE
参数中提供数据源。
解决方法:如需解决此问题,请将字典对象(例如 CDS 视图或表)的名称作为数据源传递。如需了解详情,请参阅调用数据复制方法。
/GOOG/BQTR: Mass Transfer Key MASS_TRANSFER_KEY not found. Use Tcode /GOOG/BQTR_SETTINGS to maintain
问题:数据转移失败,并显示错误消息 /GOOG/BQTR: Mass Transfer Key MASS_TRANSFER_KEY not found. Use Tcode /GOOG/BQTR_SETTINGS to maintain
。
原因:BigQuery Data Transfer 模块中未维护传递给数据加载类 /GOOG/CL_BQTR_DATA_LOAD
的批量传输密钥。
解决方法:如需解决此问题,请使用事务代码 /GOOG/BQTR_SETTINGS
维护大规模转移密钥。如需了解详情,请参阅配置 BigQuery Data Transfer 模块。
/GOOG/BQTR: DATA_SOURCE does not exist in data dictionary
问题:数据转移失败,并显示错误消息 /GOOG/BQTR: DATA_SOURCE does not exist in data dictionary
。
原因:传递给数据加载类 /GOOG/CL_BQTR_DATA_LOAD
的数据源不是有效的数据字典对象。
解决方法:如需解决此问题,请传递数据字典中存在的数据源的名称。仅支持表、字典视图和 CDS 视图。
/GOOG/BQTR: Nested Tables are not supported
问题:您收到错误消息 /GOOG/BQTR: Nested Tables are not supported
。
原因:作为数据加载类 /GOOG/CL_BQTR_DATA_LOAD
的输入传递的字典对象不是平面结构。
解决方法:如需解决此问题,请使用具有扁平结构的字典对象。
/GOOG/BQTR: Error creating target table definition
问题:您收到错误消息 /GOOG/BQTR: Error creating target table definition
。
原因:BigQuery Toolkit for SAP 无法为给定数据源创建目标表定义。
解决方法:如需解决此问题,请验证输入源是否为包含一个或多个字段的有效字典对象。
/GOOG/BQTR: 400 - Table creation failed in BQ. Could not pull the table metadata from BQ
问题:您收到错误消息 /GOOG/BQTR: 400 - Table creation failed in BQ. Could not pull the table metadata from BQ
。
原因:如果 BigQuery Data Transfer 模块无法从 BigQuery 获取表定义,就会引发此错误。这可能是因为 BigQuery 中的服务器暂时过载所致。
解决方法:如需解决此问题,请重启 BigQuery 数据加载操作。
/GOOG/BQTR: 400 - Scope must be provided
问题:您收到错误消息 /GOOG/BQTR: 400 - Scope must be provided
。
原因:在客户端密钥配置中,Google Cloud 范围为空。
解决方法:如需解决此问题,请在您使用的客户端密钥配置的 Google Cloud 范围字段中,指定相应的范围(例如 https://www.googleapis.com/auth/cloud-platform
)。
/GOOG/BQTR: 400 - Schema mismatch for table TABLE_NAME
问题:您收到错误消息 /GOOG/BQTR: 400 - Schema mismatch
for table TABLE_NAME. Please delete the table from BigQuery and
try again.
原因:对现有 BigQuery 表输入了以下某项更改:
- 删除字段
- 重命名字段
- 字段的数据类型的更改
- 表的分区类型的更改
无法将上述更改应用于现有 BigQuery 表。
解决方法:如果您需要更改现有表中的这些字段特性中的任何特性,则需要删除现有表并将记录重新加载到新表中。
与无效数据相关的错误消息
问题:在应用日志中,您会收到错误消息:/GOOG/BQTR/: DESCRIPTION_OF_INVALID_DATA error
occurred in FIELD_NAME in record
RECORD_KEYS
。
原因:在将任何包含无效数据的记录插入目标表时,BigQuery 会发出此错误消息。数据无效的原因可能是以下之一:
- 特定记录的字段中的数据与 BigQuery 中的数据类型不兼容。例如,BigQuery 在以下情况下会生成错误消息:
- 在
DATE
、INTEGER
或BOOLEAN
类型的字段中保存字符串。 - 在类型为
DATE
的字段中保存无效日期 (00/00/0000
)。
- 在
- 在事务
/GOOG/BQTR_SETTINGS
中的字段映射中保存不正确的目标数据类型。
BigQuery 会为包含无效数据字段的每条记录发出错误消息。
解决方法:分析错误消息 DESCRIPTION_OF_INVALID_DATA
,以了解无效数据的可能原因。如需识别包含无效数据字段的记录,请使用 RECORD_KEYS
,其中包含记录的前五个字段的内容。如果表包含的字段不超过 5 个,则所有字段的内容都将包含在 RECORD_KEYS
中。
- 如果字段中的数据与 BigQuery 中的数据类型不兼容,请更正源表中的数据。
- 如果错误是由于数据与数据类型不匹配所致,请使用事务
/GOOG/BQTR_SETTINGS
指定适当的数据类型。
/GOOG/BQTR: 403 - Access Denied: Dataset PROJECT_ID:DATASET_NAME: Permission bigquery.tables.created denied on dataset
问题:数据转移失败,并显示错误消息 /GOOG/BQTR: 403 -
Access Denied: Dataset PROJECT_ID:DATASET_NAME: Permission
bigquery.tables.created denied on dataset
。
原因:对于在 Google Cloud上运行的 SAP 工作负载,在表 /GOOG/CLIENT_KEY
中,指定的服务账号没有访问 BigQuery API 所需的权限。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/BQTR_SETTINGS
事务:/n/GOOG/BQTR_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/CLIENT_KEY
。对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下为 Service Account Name 字段指定的值。
在 Google Cloud 控制台中,前往 Identity and Access Management 的服务账号页面。
选择您在前面的步骤中记下的服务账号。
确保服务账号具有 BigQuery Toolkit for SAP 访问 BigQuery 所需的 IAM 角色,如设置身份验证中所述。
重新运行复制。
/GOOG/BQTR: 404 - Not Found
问题:数据转移失败,并显示错误消息 /GOOG/BQTR: 404 - Not
Found
。
原因:在 ABAP SDK for Google Cloud 用于连接到 Google Cloud API 的 RFC 目标中,路径前缀不正确。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/BQTR_SETTINGS
事务:/n/GOOG/BQTR_SETTINGS
对于在事务
LTRC
中失败的批量传输 ID,请记下 Google Cloud Key Name(Google Cloud 键名称)字段的值。输入事务
SM30
,然后打开表/GOOG/SERVIC_MAP
。对于您在前面的步骤中记下的 Google Cloud Key Name 值,请记下 RFC 目标名称。
输入
SM59
事务,然后完成以下步骤:- 对于连接到 BigQuery 的 RFC 目标,请确保路径前缀字段值为
/bigquery/v2/
。 - 对于连接到 IAM 的 RFC 目标,请确保路径前缀字段值为
/v1/
。
- 对于连接到 BigQuery 的 RFC 目标,请确保路径前缀字段值为
重新运行复制。
/GOOG/BQTR: 404 - Table PROJECT_ID:DATASET_NAME.TABLE_NAME not found
问题:数据转移失败,并显示错误消息 /GOOG/BQTR: 404 -
Table PROJECT_ID:DATASET_NAME.TABLE_NAME not
found
。
原因:在 ABAP SDK for Google Cloud 用于连接到 API 的 RFC 目标中,您为 Target Host 字段指定的值与 Cloud DNS 中的任何 DNS 名称都不匹配。 Google Cloud
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入事务代码
/GOOG/BQTR_SETTINGS
。输入收到此错误的批量传输密钥。
点击执行图标。记下 Google Cloud Key Name 列中的值。
输入事务
SM30
,然后在显示模式下打开表/GOOG/CLIENT_KEY
。使用您在前面的步骤中记下的 Google Cloud Key Name 搜索表
/GOOG/SERVIC_MAP
,然后记下指定的 RFC 目标名称。输入事务代码
SM59
。对于用于连接到 BigQuery 和 IAM API 的 RFC 目标,请记下为 Target Host 字段指定的值。
在 Google Cloud 控制台中,转到网络服务 Cloud DNS 页面。
点击包含 Private Service Connect 端点的 DNS 记录的专用可用区,您创建的这些端点允许 BigQuery Toolkit for SAP 以私密方式连接到 BigQuery 和 IAM API。
确保您在前面的步骤中记下的每个目标主机值都有一条 DNS 记录,其中包含匹配的 DNS 名称。
重新运行复制。
/GOOG/BQTR: 404 - Not Found Requested entity was not found
问题:数据转移失败,并显示错误消息 /GOOG/BQTR: 404 - Not Found Requested entity was not found
。
原因:对于在 Google Cloud上运行的工作负载,客户端密钥表 /GOOG/CLIENT_KEY
中使用的服务账号无效。
解决方法:要解决此问题,请按以下步骤操作:
在 SAP GUI 中,输入以
/n
开头的/GOOG/BQTR_SETTINGS
事务:/n/GOOG/BQTR_SETTINGS
输入收到此错误的批量传输密钥。
点击执行图标。记下 Google Cloud Key Name 列中的值。
输入事务
SM30
,然后打开表/GOOG/CLIENT_KEY
。对于 Service Account Name 字段,请确保指定的值是为 BigQuery Toolkit for SAP 创建的服务账号的电子邮件地址。
重新运行复制。
/GOOG/BQTR: 413 - Request Entity Too Large
问题:数据转移失败,并显示错误消息 /GOOG/BQTR: 413 - Request
Entity Too Large
。
原因:当 BigQuery Toolkit for SAP 发送的区块的字节大小超过 BigQuery 接受的 HTTP 请求的最大字节大小时,就可能出现此问题。如果表记录的大小或记录包含的数据量导致区块的字节大小超过 BigQuery 限制,则可能会出现此问题。
解决方法:减小 BigQuery Toolkit for SAP 为您的表发送的区块的大小。您可以通过运行事务 /GOOG/BQTR_SETTINGS
来调整数据块大小,也可以启用动态数据块大小以自动调整数据块大小。如需了解详情,请参阅以下主题:
/GOOG/BQTR: 404 - Not found: Dataset DATASET_NAME
问题:尝试验证安全性或将数据加载到 BigQuery 表时,您收到消息 /GOOG/BQTR: 404 - Not found: Dataset DATASET_NAME
。 Google Cloud
原因:此问题可能由以下情况引起:
- 尚未创建 BigQuery 数据集。
- 数据集名称未在大规模转移作业配置中正确指定。
- 需要激活 BigQuery Data Transfer 模块中的复制配置。
解决方法:尝试以下解决方法:
- 确认已在 BigQuery 中创建数据集。
- 检查大规模转移作业配置中的数据集名称是否与 BigQuery 中的数据集名称相同。
/GOOG/BQTR : Unable to interpret VALUE as a BOOLEAN
问题:加载或复制记录失败,并显示消息 /GOOG/BQTR : Unable to interpret VALUE as a BOOLEAN
。
原因:此问题是由源表中的字段映射到 BigQuery 数据类型 BOOLEAN
,但源字段中的数据无法解析为布尔值导致的。
解决方法:如需解决此问题,请使用事务 /GOOG/BQTR_SETTINGS
更改源字段映射到的数据类型,或移除数据类型映射并接受默认数据类型。
/GOOG/BQTR: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS
问题:加载或复制记录失败,并显示消息 /GOOG/BQTR: Failed to convert field SAP_FIELD_NAME value
to field BIGQUERY_FIELD_NAME: ERROR_DETAILS
。
原因:源字段包含无效的值,或者源字段映射到的 BigQuery 数据类型不是源字段包含的数据的有效映射。
解决方法:要解决此问题,请使用事务 /GOOG/BQTR_SETTINGS
更改源字段映射到的数据类型,或移除数据类型映射并接受数据类型的默认映射。
/GOOG/BQTR: DESCRIPTION_OF_ISSUE error occurred in chunk ranging START_INDEX_OF_FAILED_CHUNK - END_INDEX_OF_FAILED_CHUNK
问题:数据块的复制失败,并显示错误消息 /GOOG/BQTR: DESCRIPTION_OF_ISSUE error occurred in chunk
ranging START_INDEX_OF_FAILED_CHUNK - END_INDEX_OF_FAILED_CHUNK
。
原因:这可能有多个原因,包括 Invalid JSON Payload
、Quota Exceeded
、Request Entity Too Large
或 HTTP Communication Failure
。无法复制到 BigQuery 的数据块的错误消息会显示该数据块的起始和结束索引。
如果您尚未在事务 /GOOG/BQTR_SETTINGS
中设置 BREAK
标志,则会显示此错误消息。如果未设置 BREAK
标志,则即使发生错误,BigQuery Toolkit for SAP 也会通过发送下一个数据块来继续向 BigQuery 发送记录。
解决方法:尝试以下解决方法:
- 对于
Quota Exceeded
、Request Entity Too Large
或HTTP Communication Failure
问题,请按照 /GOOG/BQTR: 413 - Request Entity Too Large 的问题排查步骤操作。 - 停止当前加载,从 BigQuery 中删除目标表,然后重启全新加载。
- 如需停止向 BigQuery 发送数据,并在遇到错误数据块时终止复制作业,请设置
BREAK
标志(建议在生产环境中使用)。
如需了解如何配置 BREAK
标志,请参阅指定表创建和其他常规属性。
通过社区获取支持
在 Cloud 论坛上提出问题并与社区讨论 BigQuery Toolkit for SAP。
获取支持
Google Cloud 针对与 BigQuery Toolkit for SAP 的安装、配置、操作和维护相关的问题和疑问提供支持。不过,支持仅限于该工具包本身。
Google Cloud 不支持其他环境组件,例如网络基础架构、数据库、操作系统或第三方软件。对于与 BigQuery Toolkit for SAP 以外的任何环境组件相关的问题,请与相应的供应商或支持提供商联系。
对于 SAP 提供的功能(例如操作性数据配置 [ODP] 和 SAP Landscape Transformation [SLT]),请与 SAP 支持团队联系以寻求帮助。
如果您需要帮助以解决 BigQuery Toolkit for SAP 问题,请收集所有可用的诊断信息,并与 Cloud Customer Care 联系。
如需详细了解如何与 Cloud Customer Care 团队联系,请参阅获取 SAP on Google Cloud 支持 Google Cloud。