Risolvere i problemi di rilevamento dei dati di Knowledge Catalog

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.objectViewer o roles/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 contiene TABLE_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_PUBLISH
  • com.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 .csv e .parquet nella stessa directory).
  • Definizione di partizione non valida (INVALID_PARTITION_DEFINITION): le chiavi di partizione sono incoerenti o mancanti. Ad esempio, l'utilizzo di Year=2023/Mon=Jan in un percorso e Year=2023/Dept=Sales in 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 string in un file e un int o boolean tipo 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:

  1. Nella Google Cloud console, vai alla pagina BigQuery.
  2. Nel riquadro Spazio di esplorazione , espandi il progetto, seleziona il set di dati e fai clic sulla tabella interessata.
  3. Fai clic sulla scheda Dettagli.
  4. Nella sezione Etichette, controlla il valore della chiave metadata-managed-mode.
  5. 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.