Questa pagina spiega come risolvere i problemi comuni durante l'integrazione di SAP Business Data Cloud (BDC) con BigQuery. Per il flusso di lavoro SAP su Google Cloud (federazione), consulta la pagina di risoluzione dei problemi di Lakehouse.
Errori NOT_FOUND o PERMISSION_DENIED durante l'esecuzione di query sulle tabelle
Questo problema si verifica quando l'accesso viene revocato sul lato SAP BDC. Le query sulle tabelle interessate non vanno a buon fine e restituiscono un errore "non trovato" o "autorizzazione negata" proveniente dall'endpoint Delta Sharing.
Per risolvere il problema, collabora con l'amministratore SAP per ripristinare l'accesso alle tabelle. Per saperne di più sulla gestione degli accessi in SAP, consulta Utilizzo dei prodotti di dati in SAP Business Data Cloud Connect nella documentazione SAP.
Impossibile scrivere dati nelle tabelle SAP BDC
Questo problema si verifica quando tenti di scrivere o modificare i dati nelle tabelle SAP BDC da BigQuery. Questa integrazione fornisce l'accesso in sola lettura ai dati SAP BDC.
Per risolvere il problema, modifica i dati direttamente in SAP BDC.
Addebiti imprevisti per i prezzi delle chiamate API Delta Sharing
Questo problema può verificarsi se il catalogo Lakehouse si sincronizza troppo spesso con SAP BDC, che chiama le API Delta Sharing per elencare le tabelle e ottenere i metadati delle tabelle. Queste chiamate API vengono addebitate come operazioni Lakehouse di classe A.
Per risolvere il problema, aumenta l'intervallo di aggiornamento del catalogo per ridurre la frequenza delle chiamate API. Per saperne di più sui prezzi, consulta Prezzi di Lakehouse.
SAP non riesce a trovare o eseguire query sulle tabelle pubblicate
Questo problema può verificarsi se i metadati Apache Iceberg richiesti da SAP BDC non sono stati generati correttamente nel bucket Cloud Storage.
Per risolvere il problema, verifica che i file di metadati previsti esistano nel percorso di archiviazione di backup della tabella:
Elenca i contenuti della cartella
metadatadella tabella:gcloud storage ls "gs://BUCKET_NAME/NAMESPACE_NAME/TABLE_NAME/metadata/"
Verifica che l'output contenga i file di metadati Apache Iceberg standard, tra cui:
version-hint.txtv*.metadata.json- File manifest (
.avro). Se questi file non sono presenti, controlla la configurazione del catalogo REST Iceberg o le operazioni di scrittura in BigQuery per assicurarti che i dati e i metadati vengano materializzati correttamente nel bucket di archiviazione.
La pubblicazione della tabella non riesce a causa di un errore relativo alla chiave primaria o al campo nullable mancante
Questo problema si verifica quando pubblichi un catalogo Apache Iceberg o un prodotto di dati in SAP BDC, ma le tabelle all'interno del catalogo o del prodotto di dati non hanno una chiave primaria definita nei metadati Iceberg oppure una delle colonne della chiave primaria è definita come nullable (required: false).
In questo caso, la pubblicazione non riesce e viene visualizzato uno dei seguenti errori:
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 richiede che tutte le tabelle pubblicate definiscano i vincoli della chiave primaria utilizzando identifier-field-ids nei metadati Iceberg. In conformità con la specifica Apache Iceberg, tutte le colonne designate in identifier-field-ids devono essere configurate anche come non nullable (required: true).
Per risolvere il problema, esegui un aggiornamento dello schema atomico utilizzando l'API REST BigLake Iceberg per contrassegnare le colonne della chiave primaria come required: true e specificare i relativi ID campo in identifier-field-ids:
Ottieni un token di accesso per l'autorizzazione:
TOKEN=$(gcloud auth application-default print-access-token)
Invia un commit di aggiornamento dello schema REST Iceberg utilizzando 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()
Sostituisci quanto segue:
PROJECT_ID: il tuo Google Cloud ID progetto.ICEBERG_CATALOG_ID: l'ID del catalogo REST Iceberg.NAMESPACE_NAME: il nome dello spazio dei nomi Iceberg.TABLE_NAME: il nome della tabella Iceberg.PRIMARY_KEY_COLUMN_NAME: il nome della colonna da impostare come chiave primaria.PRIMARY_KEY_FIELD_ID: l'ID campo intero della colonna della chiave primaria (ad esempio,1).
Le query su SAP non vanno a buon fine e vengono visualizzati errori di autorizzazione o di tipo "non trovato"
Questo problema può verificarsi se l'accesso viene revocato o le autorizzazioni vengono modificate in BigQuery dopo la pubblicazione di un catalogo o di un prodotto di dati in SAP BDC. Le query sulle tabelle interessate non andranno a buon fine sul lato SAP, in genere con un errore "non trovato" o "autorizzazione negata" proveniente da BigQuery.
Per risolvere il problema, verifica che l'entità principale della federazione delle identità per i carichi di lavoro mantenga i ruoli richiesti (ad esempio Visualizzatore BigLake) e che venga concesso l'accesso standard al set di dati o alla tabella BigQuery. Per saperne di più sull'installazione e sull'utilizzo dei prodotti di dati in SAP, consulta Installazione dei prodotti di dati nella documentazione SAP.
Le nuove tabelle o le modifiche ai metadati non vengono visualizzate in SAP BDC
Questo problema può verificarsi quando aggiungi nuove tabelle o aggiorni i metadati delle tabelle esistenti nel catalogo REST Apache Iceberg o nel prodotto di dati Knowledge Catalog, ma le modifiche non sono visibili ai consumatori SAP. Sebbene i dati sottostanti rimangano aggiornati, gli aggiornamenti dei metadati potrebbero richiedere un'azione esplicita.
Per risolvere il problema, esegui una nuova azione di pubblicazione (gcloud biglake
data-product-sharing publish) per il catalogo o il prodotto di dati in modo che i nuovi
metadati siano rilevabili in SAP BDC.
Impossibile scrivere dati da SAP a BigQuery
Questo problema si verifica quando tenti di utilizzare l'integrazione SAP pubblicata per scrivere o modificare i dati in BigQuery da SAP BDC. Questa integrazione fornisce l'accesso in sola lettura ai dati BigQuery da SAP BDC per impedire la sovrascrittura accidentale dei dati o violazioni della sicurezza.
Per risolvere il problema, manipola e scrivi i dati di origine direttamente utilizzando BigQuery o pipeline standard Google Cloud .
Errori RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER durante l'esecuzione di query sulle tabelle
Questo problema può verificarsi se nel tuo ambiente sono applicati i Controlli di servizio VPC e il perimetro applicato al progetto limita il servizio storage.googleapis.com.
Poiché Dremel deve leggere i bucket Cloud Storage in entrata nel progetto SAP durante l'esecuzione di query sulle tabelle, la richiesta è vietata perché il progetto SAP si trova al di fuori del perimetro.
Per risolvere il problema, configura una regola in uscita dei Controlli di servizio VPC. Per saperne di più sulla configurazione, consulta Configurazione dei Controlli di servizio VPC per SAP BDC.