Questa guida ti aiuta a risolvere i problemi comuni relativi alle scansioni di rilevamento dei dati di Knowledge Catalog (chiamate anche rilevamento autonomo), inclusi gli errori di pubblicazione delle tabelle e di incompatibilità dello schema.
Errore di pubblicazione della tabella BigQuery (FAILED_BIGQUERY_TABLE_PUBLISH)
Quando viene eseguita una scansione di rilevamento, la pubblicazione delle tabelle in BigQuery potrebbe non riuscire. In questo caso, la scansione registra un'azione FAILED_BIGQUERY_TABLE_PUBLISH in Cloud Logging.
Questo problema si verifica a causa delle seguenti condizioni:
- Autorizzazioni IAM insufficienti: il account di servizio Knowledge Catalog o il account di servizio di connessione BigQuery non dispone dei ruoli necessari per delegare le connessioni, accedere a Cloud Storage o scrivere nel set di dati di destinazione.
- Mancata corrispondenza tra connessione BigQuery o set di dati: l'ID connessione specificato non è valido oppure la connessione e il set di dati di destinazione si trovano in regioni diverse.
- Errori di configurazione della tabella: la creazione o la modifica della tabella applica impostazioni errate o non supportate.
Per risolvere il problema, esegui i seguenti controlli:
- Verifica account di servizio account:
verifica che il account di servizio Knowledge Catalog
service-PROJECT_NUMBER@gcp-sa-dataplex.abbia il ruolo Dataplex Discovery BigLake Publishing Service Agent (roles/dataplex.discoveryBigLakePublishingServiceAgent) . - Verifica le autorizzazioni di connessione:
se crei tabelle BigLake, verifica che il account di servizio di connessione BigQuery
abbia accesso in lettura al bucket Cloud Storage (utilizzando
roles/storage.objectVieweroroles/dataplex.discoveryServiceAgent). - Controlla la posizione della connessione e del set di dati: assicurati che la connessione BigQuery e il set di dati BigQuery esistano nella stessa regione e che siano compatibili con la posizione del bucket Cloud Storage.
- Esamina i log per i dettagli:
Esplora i log dei job DataScan in Cloud Logging. Se l'errore contiene
BigQuery: Permission denied, controlla le autorizzazioni del account di servizio. Se contieneTABLE_CONFIG, verifica che i file di dati siano conformi ai requisiti di BigQuery.
La creazione della tabella BigLake non riesce per i bucket Cloud Storage di grandi dimensioni
Quando una scansione di rilevamento elabora bucket Cloud Storage con un volume elevato di dati o file singoli di grandi dimensioni (ad esempio, file Avro di dimensioni superiori a 30 MB), la scansione può creare correttamente il set di dati BigQuery, ma non pubblicare le tabelle BigLake.
In questo caso, potresti visualizzare i seguenti errori in Cloud Logging:
FAILED_BIGQUERY_TABLE_PUBLISHcom.google.cloud.bigquery.BigQueryException: Read timed out
Questo problema è una limitazione di scalabilità nota. Se hai bisogno del provisioning immediato delle tabelle, configura la scansione di rilevamento in modo da includere un sottoinsieme più piccolo e filtrato dei dati del bucket.
Mancata corrispondenza dello schema della cartella Cloud Storage
Una scansione di rilevamento dei dati non riesce a registrare le tabelle esterne o non rileva i file in determinate cartelle.
Questo problema si verifica se le cartelle Cloud Storage contengono file con schemi incompatibili o formati diversi. La scansione di rilevamento raggruppa i file in una singola tabella solo se si trovano nella stessa cartella e hanno uno schema compatibile.
Quando una scansione di rilevamento dei dati analizza un percorso Cloud Storage, si aspetta che i file all'interno di una cartella e la struttura delle partizioni tra le cartelle siano coerenti. La scansione contrassegna un'azione se rileva uno dei seguenti elementi:
- Formato dei dati non valido (
INVALID_DATA_FORMAT): vengono rilevati formati di dati incoerenti all'interno della stessa cartella o tra le partizioni (ad esempio, la combinazione di file.csve.parquetnella stessa directory). - Definizione di partizione non valida (
INVALID_PARTITION_DEFINITION): le chiavi di partizione sono incoerenti o mancanti. Ad esempio, l'utilizzo diYear=2023/Mon=Janin un percorso eYear=2023/Dept=Salesin un altro. - Schema dei dati non compatibile (
INCOMPATIBLE_DATA_SCHEMA): vengono rilevati schemi incoerenti o incompatibili tra i file all'interno della stessa cartella o tabella.
Per i formati con tipi di dati definiti in modo rigido come Avro e Parquet, le mancate corrispondenze dello schema si verificano a causa di:
- Tipi di dati non compatibili: una colonna ha un tipo
stringin un file e unintobooleantipo in un altro. - Valori predefiniti mancanti: i nuovi campi vengono aggiunti o eliminati nei file più recenti senza specificare i valori predefiniti nella definizione dello schema, impedendo la corretta evoluzione dello schema.
- Formato file danneggiato: uno o più file sono danneggiati o non validi, il che impedisce alla scansione di leggere ed estrarre lo schema.
Per risolvere il problema, controlla la struttura dei file e le definizioni dello schema:
- Organizza i file per schema e formato: Verifica che tutti i file in una singola cartella condividano lo stesso formato e la stessa struttura dello schema. Sposta i file con colonne, tipi primitivi o formati diversi in cartelle o prefissi separati in modo che possano essere registrati come tabelle separate.
- Utilizza definizioni di partizione coerenti:
assicurati che le chiavi e le strutture delle partizioni siano coerenti in tutte le
cartelle delle partizioni (ad esempio, utilizzando sempre
Year=YYYY/Month=MM/). - Segui le regole di evoluzione dello schema: quando aggiorni gli schemi (ad esempio aggiungendo o rimuovendo campi dai file Avro), definisci sempre i valori predefiniti in modo che il servizio di rilevamento possa unire correttamente le varianti dello schema.
- Identifica i file danneggiati: controlla l'output o i log della scansione per verificare se un determinato file non è stato decodificato. Sposta temporaneamente i file per verificare se un file specifico causa l'errore della scansione.
Le tabelle rilevate non vengono aggiornate con le modifiche allo schema
Dopo aver modificato i file in Cloud Storage o eseguito una nuova scansione, lo schema aggiornato non viene visualizzato nelle tabelle BigQuery pubblicate.
Questo problema si verifica se la tabella pubblicata ha l'etichetta metadata-managed-mode impostata su user_managed. Per impostazione predefinita, il rilevamento pubblica le tabelle come discovery_managed. Se tu o un altro utente modificate manualmente le proprietà dello schema della tabella, dovete modificare l'etichetta in user_managed per bloccare gli aggiornamenti automatici.
Per risolvere il problema, controlla le etichette delle tabelle in BigQuery:
- Nella Google Cloud console, vai alla pagina BigQuery.
- Nel riquadro Spazio di esplorazione , espandi il progetto, seleziona il set di dati e fai clic sulla tabella interessata.
- Fai clic sulla scheda Dettagli.
- Nella sezione Etichette, controlla il valore della chiave
metadata-managed-mode. Se vuoi che la scansione di rilevamento riprenda a gestire e aggiornare lo schema, fai clic su Modifica dettagli e modifica il valore in
discovery_managed.
Assistenza
Se hai bisogno di aiuto per risolvere un problema non trattato in questo documento, contatta l'assistenza clienti di Google Cloud.