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 Google Cloud, 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-Google Cloud
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 Google Cloud .
- Controlla i log della VPN per verificare la presenza di errori o pacchetti eliminati.
- Verifica che le tabelle di routing in AWS e Google Cloud siano configurate correttamente.
- Assicurati che le porte necessarie siano aperte sia nei gruppi di sicurezza AWS sia nelle regole firewall Google Cloud .
Per ulteriori informazioni sulla configurazione dei collegamenti VPN, consulta Crea una VPN e un collegamento di rete AWS-Google Cloud .
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_newlinessufalse. - 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.