本页面介绍了将 SAP Business Data Cloud (BDC) 与 BigQuery 集成时如何解决常见问题。对于使用无边界 Lakehouse 的 SAP 到 Google Cloud (联合)工作流,另请参阅 无边界 Lakehouse 故障排除页面。
查询表时出现 NOT_FOUND 或 PERMISSION_DENIED 错误
当 SAP BDC 端撤消访问权限时,会出现此问题。对受影响表的查询失败,并返回源自 Delta Sharing 端点的“未找到”或“权限被拒”错误。
如需解决此问题,请与 SAP 管理员协作以恢复对表的访问权限。如需详细了解 SAP 中的访问权限管理,请参阅 SAP 文档中的在 SAP Business Data Cloud Connect 中使用数据产品。
无法将数据写入 SAP BDC 表
当您尝试从 BigQuery 写入或修改 SAP BDC 表中的数据时,会出现此问题。此集成提供对 SAP BDC 数据的只读访问权限。
如需解决此问题,请直接在 SAP BDC 中修改数据。
Delta Sharing API 调用的价格费用超出预期
如果您的 Lakehouse 目录与 SAP BDC 同步过于频繁,则可能会出现此问题,这会调用 Delta Sharing API 来列出表并获取表元数据。这些 API 调用按 Lakehouse A 类操作收费。
如需解决此问题,请增加目录的刷新间隔,以降低 API 调用的频率。如需了解详情,请参阅 Lakehouse 价格。
SAP 无法找到或查询已发布的表
如果您的 Cloud Storage 存储桶中未正确生成 SAP BDC 所需的 Apache Iceberg 元数据,则可能会出现此问题。
如需解决此问题,请验证存储路径(支持您的表)中是否存在预期的元数据文件:
列出表的
metadata文件夹的内容:gcloud storage ls "gs://BUCKET_NAME/NAMESPACE_NAME/TABLE_NAME/metadata/"
验证输出是否包含标准 Apache Iceberg 元数据文件,包括:
version-hint.txtv*.metadata.json- 清单文件 (
.avro)。如果缺少这些文件,请检查 BigQuery 中的 Iceberg REST 目录配置或写入操作,以确保数据和元数据已成功具体化到存储桶中。
对 SAP 的查询失败,并显示权限错误或未找到错误
如果目录或数据产品发布到 SAP BDC 后,在 BigQuery 中撤消了访问权限或修改了权限,则可能会出现此问题。对受影响表的查询将在 SAP 端失败,通常会显示源自 BigQuery 的“未找到”或“权限被拒”错误。
如需解决此问题,请验证工作负载身份联合正文是否保留了所需的角色(例如 BigLake Viewer),并且是否已授予标准 BigQuery 数据集/表访问权限。如需详细了解如何在 SAP 中安装和使用数据产品,请参阅 SAP 文档中的安装数据 产品 。
SAP BDC 中未显示新表或元数据更改
当您在 Apache Iceberg REST 目录或 Knowledge Catalog 数据产品中添加新表或更新现有表元数据时,如果 SAP 使用者看不到这些更改,则可能会出现此问题。虽然底层数据保持最新,但元数据更新可能需要明确的操作。
如需解决此问题,请为目录或数据产品执行新的发布操作 (gcloud biglake
data-product-sharing publish),以便在 SAP BDC 中发现新
元数据。
无法将数据从 SAP 写回 BigQuery
当您尝试使用已发布的 SAP 集成从 SAP BDC 写入或修改 BigQuery 中的数据时,会出现此问题。此集成提供从 SAP BDC 到 BigQuery 数据的只读访问权限,以防止意外覆盖数据或违反安全规定。
如需解决此问题,请使用 BigQuery 或标准 Google Cloud 流水线直接操作和写入源数据。
查询表时出现 RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER 错误
如果您的环境强制执行了 VPC Service Controls,并且对项目应用了边界,从而限制了 storage.googleapis.com 服务,则可能会出现此问题。
由于 Dremel 在查询表时需要读取 SAP 项目中的传入 Cloud Storage 存储分区,因此系统会禁止该请求,因为 SAP 项目位于您的边界之外。
如需解决此问题,请配置 VPC Service Controls 出站规则。如需了解详情,请参阅 SAP BDC 的 VPC Service Controls 配置。