Risolvere i problemi relativi ai trasferimenti di dati

Questa pagina spiega come risolvere i problemi durante il trasferimento o il caricamento dei dati in BigQuery. Puoi risolvere gli errori comuni relativi a BigQuery Data Transfer Service, connessioni di rete tra Cloud de Confiance by S3NS, Amazon Web Services (AWS), Cloud SQL e reti Virtual Private Cloud (VPC), nonché ai job di caricamento dei dati CSV da Cloud Storage.

Risolvere i problemi relativi alle configurazioni di trasferimento

Per informazioni sulla risoluzione dei problemi relativi a BigQuery Data Transfer Service, vedi Risoluzione dei problemi relativi alle configurazioni di trasferimento.

Se configuri o esegui trasferimenti da origini dati esterne o partner, consulta Risolvere i problemi di configurazione del trasferimento di terze parti.

Diagnosticare i job con le visualizzazioni INFORMATION_SCHEMA

Puoi eseguire query sulla visualizzazione INFORMATION_SCHEMA.JOBS per diagnosticare i job di caricamento e le query di trasferimento non riusciti o lenti quasi in tempo reale. Quando un job di caricamento o una query di trasferimento non riesce, esamina le colonne error_result e errors per identificare la causa principale, ad esempio mancata corrispondenza dello schema, limiti di quota o errori di autorizzazione.

La query nell'esempio seguente viene eseguita su INFORMATION_SCHEMA.JOBS per recuperare i dettagli dell'errore per i job di caricamento non riusciti nelle ultime 24 ore:

SELECT
  job_id,
  creation_time,
  user_email,
  error_result.reason AS error_reason,
  error_result.message AS error_message,
  errors
FROM
  `region-REGION`.INFORMATION_SCHEMA.JOBS
WHERE
  job_type = 'LOAD'
  AND state = 'DONE'
  AND error_result IS NOT NULL
  AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
ORDER BY
  creation_time DESC;

Sostituisci <var>REGION</var> con il nome della regione del set di dati, ad esempio us o europe-west1.

Risolvere i problemi di connessione di rete per il trasferimento

Quando trasferisci dati da provider cloud esterni o istanze di database privati, il routing di rete o le regole firewall possono bloccare la connettività. Utilizza le sezioni seguenti per risolvere i problemi relativi ai collegamenti VPN e alle connessioni di rete private.

Allegati di rete e VPN AWS-Cloud de Confiance

Se riscontri problemi durante la configurazione del collegamento di rete, procedi nel seguente modo:

  • Assicurati che le connessioni VPN siano attive e funzionanti sia nella console AWS sia nella console Cloud de Confiance .
  • Controlla i log della VPN per verificare la presenza di errori o pacchetti eliminati.
  • Verifica che le tabelle di routing in AWS e Cloud de Confiance siano configurate correttamente.
  • Assicurati che le porte necessarie siano aperte sia nei gruppi di sicurezza AWS sia nelle regole firewall Cloud de Confiance .

Per ulteriori informazioni sulla configurazione dei collegamenti VPN, consulta Crea una VPN e un collegamento di rete AWS-Cloud de Confiance .

Accesso all'istanza Cloud SQL

Se riscontri problemi durante la configurazione di rete, procedi nel seguente modo:

  • Assicurati che il peering VPC sia stabilito e che le route siano configurate correttamente.
  • Verifica che le regole firewall consentano il traffico sulle porte richieste.
  • Controlla i log del proxy Cloud SQL per verificare la presenza di errori e assicurati che sia in esecuzione correttamente.
  • Assicurati che il collegamento di rete sia configurato e connesso correttamente.

Per ulteriori informazioni sulla configurazione dell'accesso privato al database, consulta Connettersi a un'istanza Cloud SQL.

Risolvere i problemi relativi al caricamento dei file CSV

Quando carichi dati CSV da Cloud Storage in BigQuery, i job possono non riuscire a causa di errori di formattazione, limiti di dimensioni dei file o problemi di rilevamento automatico dello schema. Utilizza le sezioni seguenti per risolvere gli errori comuni di caricamento dei file CSV.

Risolvere gli errori di analisi

Se si verifica un problema durante l'analisi dei file CSV, la risorsa errors del job di caricamento viene compilata con i dettagli dell'errore.

In genere, questi errori identificano l'inizio della riga problematica con un offset di byte. Per i file non compressi, puoi utilizzare gcloud storage con l'argomento --recursive per accedere alla riga pertinente.

Ad esempio, esegui il comando bq load e ricevi un errore:

bq load
    --skip_leading_rows=1 \
    --source_format=CSV \
    mydataset.mytable \
    gs://my-bucket/mytable.csv \
    'Number:INTEGER,Name:STRING,TookOffice:STRING,LeftOffice:STRING,Party:STRING'

L'errore nell'output è simile al seguente:

Waiting on bqjob_r5268069f5f49c9bf_0000018632e903d7_1 ... (0s)
Current status: DONE
BigQuery error in load operation: Error processing job
'myproject:bqjob_r5268069f5f49c9bf_0000018632e903d7_1': Error while reading
data, error message: Error detected while parsing row starting at position: 1405.
Error: Data between close quote character (") and field separator.
File: gs://my-bucket/mytable.csv
Failure details:
- gs://my-bucket/mytable.csv: Error while reading data,
error message: Error detected while parsing row starting at
position: 1405. Error: Data between close quote character (") and
field separator. File: gs://my-bucket/mytable.csv
- Error while reading data, error message: CSV processing encountered
too many errors, giving up. Rows: 22; errors: 1; max bad: 0; error
percent: 0

In base all'errore precedente, nel file è presente un errore di formato. Per visualizzare i contenuti del file, esegui il comando gcloud storage cat:

gcloud storage cat 1405-1505 gs://my-bucket/mytable.csv --recursive

L'output è simile al seguente:

16,Abraham Lincoln,"March 4, 1861","April 15, "1865,Republican
18,Ulysses S. Grant,"March 4, 1869",
...

In base all'output del file, il problema è una virgoletta fuori posto in "April 15, "1865.

File CSV compressi

Il debug degli errori di analisi è più difficile per i file CSV compressi, perché l'offset di byte segnalato si riferisce alla posizione nel file non compresso. Il seguente comando gcloud storage cat trasmette il file in streaming da Cloud Storage, lo decomprime, identifica l'offset di byte appropriato e stampa la riga con l'errore di formato:

gcloud storage cat gs://my-bucket/mytable.csv.gz | gunzip - | tail -c +1406 | head -n 1

L'output è simile al seguente:

16,Abraham Lincoln,"March 4, 1861","April 15, "1865,Republican

Risolvi i problemi relativi agli errori di quota

Utilizza le informazioni in questa sezione per risolvere i problemi relativi agli errori di quota o limite correlati al caricamento di file CSV in BigQuery.

Se carichi un file CSV di grandi dimensioni utilizzando il comando bq load con il flag --allow_quoted_newlines, potresti riscontrare questo errore.

Messaggio di errore

Input CSV files are not splittable and at least one of the files is larger than
the maximum allowed size. Size is: ...

Risoluzione

Per risolvere questo errore relativo alla quota, segui questi passaggi:

  • Imposta il flag --allow_quoted_newlines su false.
  • Dividi il file CSV in blocchi più piccoli, ognuno di dimensioni inferiori a 4 GB.

Per ulteriori informazioni sui limiti applicati durante il caricamento dei dati in BigQuery, consulta Job di caricamento.

Risolvere i problemi relativi al rilevamento automatico dello schema

Quando viene rilevato automaticamente lo schema per i file CSV, potresti riscontrare il seguente errore:

Errore: Error while reading data, error message: CSV processing encountered too many errors, giving up.

Questo errore può verificarsi quando il file CSV ha una riga di intestazione con valori stringa e BigQuery non l'ha rilevata come intestazione. Puoi utilizzare l'opzione --skip_leading_rows per ignorare la riga di intestazione.