En esta página, se explica cómo resolver problemas comunes cuando integras SAP Business Data Cloud (BDC) con BigQuery. Para el flujo de trabajo de SAP a Google Cloud (federación), consulta la página de solución de problemas de Lakehouse.
Errores NOT_FOUND o PERMISSION_DENIED cuando se consultan tablas
Este problema se produce cuando se revoca el acceso en el lado de SAP BDC. Las consultas a las tablas afectadas fallan y muestran un error de "no encontrado" o "permiso denegado" que se origina en el extremo de Delta Sharing.
Para resolver este problema, trabaja con tu administrador de SAP para restablecer el acceso a las tablas. Para obtener más información sobre la administración de acceso en SAP, consulta Working with Data Products in SAP Business Data Cloud Connect en la documentación de SAP.
No se pueden escribir datos en las tablas de SAP BDC
Este problema se produce cuando intentas escribir o modificar datos en tus tablas de SAP BDC desde BigQuery. Esta integración proporciona acceso de solo lectura a los datos de SAP BDC.
Para resolver este problema, modifica los datos directamente en SAP BDC.
Cargos de precios inesperados para las llamadas a la API de Delta Sharing
Este problema puede ocurrir si tu catálogo de Lakehouse se sincroniza con demasiada frecuencia con SAP BDC, que llama a las APIs de Delta Sharing para enumerar tablas y obtener metadatos de tablas. Esas llamadas a la API se cobran como operaciones de clase A de Lakehouse.
Para resolver este problema, aumenta el intervalo de actualización del catálogo para reducir la frecuencia de las llamadas a la API. Para obtener más información sobre los precios, consulta Precios de Lakehouse.
SAP no puede encontrar ni consultar tablas publicadas
Este problema puede ocurrir si los metadatos de Apache Iceberg que requiere SAP BDC no se generaron correctamente en tu bucket de Cloud Storage.
Para resolver este problema, verifica que los archivos de metadatos esperados existan en la ruta de almacenamiento que respalda tu tabla:
Enumera el contenido de la carpeta
metadatade tu tabla:gcloud storage ls "gs://BUCKET_NAME/NAMESPACE_NAME/TABLE_NAME/metadata/"
Verifica que el resultado contenga archivos de metadatos estándar de Apache Iceberg, incluidos los siguientes:
version-hint.txtv*.metadata.json- Archivos de manifiesto (
.avro). Si faltan estos archivos, verifica la configuración del catálogo de Iceberg REST o las operaciones de escritura en BigQuery para asegurarte de que los datos y los metadatos se materialicen correctamente en el bucket de almacenamiento.
La publicación de la tabla falla con el error de clave primaria faltante o campo anulable
Este problema se produce cuando publicas un catálogo de Apache Iceberg o un producto de datos en SAP BDC, pero las tablas dentro del catálogo o el producto de datos no tienen una clave primaria definida en sus metadatos de Iceberg, o una de las columnas de clave primaria se define como anulable (required: false).
Cuando esto sucede, la publicación falla con uno de los siguientes errores:
INVALID_ARGUMENT: Failed to generate Core Schema Notation (CSN) payload: Table 'TABLE_NAME' must have a primary key constraint to be published to SAP.INVALID_ARGUMENT: Field COLUMN_NAME is not required, but is referenced in the identifier-field-ids property.
SAP BDC requiere que todas las tablas publicadas definan restricciones de clave primaria con identifier-field-ids en los metadatos de Iceberg. De acuerdo con la especificación de Apache Iceberg, todas las columnas designadas en identifier-field-ids también deben configurarse como no anulables (required: true).
Para resolver este problema, realiza una actualización de esquema atómica con la API de REST de BigLake Iceberg para marcar las columnas de clave primaria como required: true y especificar sus IDs de campo en identifier-field-ids:
Obtén un token de acceso para la autorización:
TOKEN=$(gcloud auth application-default print-access-token)
Envía una confirmación de actualización de esquema de Iceberg REST con Python:
import requests headers = { "Authorization": f"Bearer {TOKEN}", "x-goog-user-project": "PROJECT_ID", "X-Iceberg-Access-Delegation": "vended-credentials", "Content-Type": "application/json", } url = "https://biglake.googleapis.com/iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME" # 1. Fetch current metadata meta = requests.get(url, headers=headers).json()["metadata"] schema = meta["schemas"][0].copy() schema["fields"] = [f.copy() for f in schema["fields"]] # 2. Mark primary key column as required (non-nullable) and set identifier-field-ids for f in schema["fields"]: if f["name"] == "PRIMARY_KEY_COLUMN_NAME": f["required"] = True schema["identifier-field-ids"] = [PRIMARY_KEY_FIELD_ID] schema["schema-id"] = meta.get("last-schema-id", 0) + 1 # 3. Commit the updated schema update_payload = { "requirements": [{"type": "assert-table-uuid", "uuid": meta["table-uuid"]}], "updates": [ { "action": "add-schema", "schema": schema, "last-column-id": meta.get("last-column-id", 0), }, {"action": "set-current-schema", "schema-id": -1}, ], } response = requests.post(url, headers=headers, json=update_payload) response.raise_for_status()
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del Google Cloud proyecto de.ICEBERG_CATALOG_ID: Es el ID del catálogo de Iceberg REST.NAMESPACE_NAME: Es el nombre del espacio de nombres de Iceberg.TABLE_NAME: Es el nombre de la tabla de Iceberg.PRIMARY_KEY_COLUMN_NAME: Es el nombre de la columna que se establecerá como clave primaria.PRIMARY_KEY_FIELD_ID: Es el ID de campo entero de la columna de clave primaria (por ejemplo,1).
Las consultas en SAP fallan con errores de permiso o no encontrado
Este problema puede ocurrir si se revoca el acceso o se modifican los permisos en BigQuery después de que se publica un catálogo o un producto de datos en SAP BDC. Las consultas a las tablas afectadas fallarán en el lado de SAP, por lo general, con un error de "no encontrado" o "permiso denegado" que se origina en BigQuery.
Para resolver este problema, verifica que la entidad principal de federación de identidades para cargas de trabajo conserve los roles necesarios (como Visualizador de BigLake) y que se otorgue el acceso estándar al conjunto de datos o la tabla de BigQuery. Para obtener más información sobre la instalación y el uso de productos de datos en SAP, consulta Installing Data Products en la documentación de SAP.
No aparecen tablas nuevas ni cambios de metadatos en SAP BDC
Este problema puede ocurrir cuando agregas tablas nuevas o actualizas los metadatos de tablas existentes en tu catálogo de Apache Iceberg REST o en el producto de datos de Knowledge Catalog, pero los cambios no son visibles para los consumidores de SAP. Si bien los datos subyacentes permanecen actualizados, las actualizaciones de metadatos pueden requerir una acción explícita.
Para resolver este problema, ejecuta una nueva acción de publicación (gcloud biglake
data-product-sharing publish) para el catálogo o el producto de datos para que los metadatos nuevos
se puedan detectar en SAP BDC.
No se pueden escribir datos de SAP en BigQuery
Este problema se produce cuando intentas usar la integración de SAP publicada para escribir o modificar datos en BigQuery desde SAP BDC. Esta integración proporciona acceso de solo lectura a los datos de BigQuery desde SAP BDC para evitar la sobrescritura accidental de datos o las violaciones de seguridad.
Para resolver este problema, manipula y escribe tus datos de origen directamente con BigQuery o canalizaciones estándar Google Cloud .
Errores RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER cuando se consultan tablas
Este problema puede ocurrir si tu entorno tiene aplicados los Controles del servicio de VPC y el perímetro aplicado en el proyecto restringe el servicio storage.googleapis.com.
Debido a que Dremel necesita leer los buckets de Cloud Storage entrantes en el proyecto de SAP cuando consulta tablas, la solicitud está prohibida, ya que el proyecto de SAP está fuera de tu perímetro.
Para resolver este problema, configura una regla de salida de Controles del servicio de VPC. Para obtener más información sobre la configuración, consulta Configuración de los Controles del servicio de VPC para SAP BDC.