Risolvere i problemi relativi alle configurazioni del trasferimento
Questo documento ha lo scopo di aiutarti a risolvere i problemi più comuni riscontrati durante la configurazione di un trasferimento BigQuery Data Transfer Service. Questo documento non include tutti i possibili messaggi di errore o problemi.
Se riscontri problemi non trattati in questo documento, puoi richiedere assistenza.
Prima di contattare l'assistenza clienti Google Cloud, acquisisci i dettagli della configurazione del trasferimento e dell'esecuzione del trasferimento. Per informazioni su come ottenere questi dettagli, vedi Ottenere i dettagli del trasferimento e Visualizzare i dettagli dell'esecuzione del trasferimento e i messaggi di log.
Esaminare gli errori
Se l'esecuzione del trasferimento iniziale non va a buon fine, puoi esaminare i dettagli nella cronologia delle esecuzioni. Gli errori elencati nella cronologia delle esecuzioni possono aiutarti a identificare una soluzione appropriata utilizzando questo documento.
Puoi anche visualizzare i messaggi di errore per un job di trasferimento specifico utilizzando Esplora log. Il seguente filtro di Esplora log restituisce informazioni su un job di configurazione del trasferimento specifico, insieme a eventuali messaggi di errore:
resource.type="bigquery_dts_config"
labels.run_id="RUN_ID"
resource.labels.config_id="CONFIG_ID"
Sostituisci quanto segue:
RUN_ID: il numero ID di una specifica esecuzione del jobCONFIG_ID: il numero ID di un job di configurazione del trasferimento
Prima di contattare l'assistenza clienti, acquisisci tutte le informazioni pertinenti dalla cronologia delle esecuzioni o da Esplora log, inclusi eventuali messaggi di errore.
Se utilizzi i trasferimenti basati su eventi, la configurazione di trasferimento basato su eventi potrebbe non attivare un'esecuzione del trasferimento. Puoi visualizzare i messaggi di errore nella parte superiore della pagina Cronologia esecuzioni o della pagina Configurazione.
Problemi generici
Quando diagnostichi problemi di trasferimento generali, verifica quanto segue:
- Verifica di aver completato tutti i passaggi della sezione "Prima di iniziare" della pagina di documentazione per il tipo di trasferimento.
- Le proprietà di configurazione del trasferimento sono corrette.
- L'account utente utilizzato per creare il trasferimento ha accesso alle risorse sottostanti.
Se la configurazione del trasferimento è corretta e sono state concesse le autorizzazioni appropriate, consulta quanto segue per le soluzioni ai problemi riscontrati più di frequente.
- Errore:
An unexpected issue was encountered. If this issue persists, please contact customer support. - Risoluzione: questo errore in genere indica un'interruzione temporanea o un problema all'interno di BigQuery. Attendi circa 2 ore per la risoluzione del problema. Se il problema persiste, richiedi assistenza.
- Errore:
INTERNAL: An internal error occurred and the request could not be completed. This is usually caused by a transient issue... - Risoluzione:questo errore in genere indica un problema interno temporaneo. Se riscontri questo errore, puoi attendere per vedere se si risolve nella successiva esecuzione pianificata oppure puoi attivare manualmente un backfill per le date interessate. Se il problema persiste, richiedi assistenza.
- Errore:
Quota Exceeded. Risoluzione:i trasferimenti sono soggetti alle quote di BigQuery sui job di caricamento. Se hai bisogno di aumentare la quota, contatta il tuo rappresentante di vendita di Cloud de Confiance by S3NS . Per saperne di più, consulta Quote e limiti.
Se carichi le esportazioni della fatturazione Cloud in BigQuery, potresti riscontrare l'errore
Quota Exceeded. Sia le tabelle di esportazione della fatturazione Cloud sia le tabelle BigQuery di destinazione create dal servizio BigQuery Data Transfer Service sono partizionate. La scelta dell'opzione sovrascrittura durante l'impostazione di questi job BigQuery Data Transfer Service causa gli errori di quota a seconda della quantità di dati esportati. Per informazioni sulla risoluzione dei problemi relativi alle quote, consulta Risolvi i problemi relativi a quote e limiti.Se l'errore è dovuto ai job BigQuery Data Transfer Service per le esportazioni di fatturazione Cloud, tieni presente che, poiché le singole tabelle di esportazione della fatturazione Cloud sono partizionate, lo è anche la tabella di destinazione creata da BigQuery Data Transfer Service. Di conseguenza, la scelta dell'opzione sovrascrittura durante la configurazione di questi job di trasferimento dei dati comporterà errori di quota DML a seconda dell'età degli account di fatturazione. Per informazioni sulla risoluzione dei problemi relativi alle quote, consulta Risolvi i problemi relativi a quote e limiti.
- Errore:
The caller does not have permission. Risoluzione:verifica che l'account con cui hai eseguito l'accesso nella console Cloud de Confiance sia lo stesso che selezioni per BigQuery Data Transfer Service quando crei il trasferimento.
Account a cui è stato eseguito l'accesso nella console Cloud de Confiance :
Scegli un account per continuare a BigQuery Data Transfer Service:
- Errore:
Access Denied: ... Permission bigquery.tables.get denied on table ... Risoluzione:conferma che all'agente di servizio di BigQuery Data Transfer Service sia stato concesso il ruolo
bigquery.dataEditornel set di dati di destinazione. Questa concessione viene applicata automaticamente durante la creazione e l'aggiornamento del trasferimento, ma è possibile che la policy di accesso sia stata modificata manualmente in un secondo momento. Per riassegnare l'autorizzazione, consulta Concedere l'accesso a un set di dati.- Errore:
region violates constraint constraints/gcp.resourceLocations on the resource projects/project_id Risoluzione:questo errore si verifica quando un utente tenta di creare una configurazione di trasferimento in una località con limitazioni, come specificato nella policy dell'organizzazione per la limitazione della località. Puoi risolvere questo problema modificando la policy dell'organizzazione per consentire la regione oppure modificando la configurazione del trasferimento in un set di dati di destinazione che si trova in una regione non soggetta a restrizioni da parte della policy dell'organizzazione.
- Errore:
Please look into the errors[] collection for more details. Soluzione:questo errore può verificarsi quando un trasferimento di dati non riesce. Per ulteriori informazioni sul motivo per cui il trasferimento dei dati non è riuscito, puoi utilizzare Cloud Logging per visualizzare i log. Puoi trovare i log per un'esecuzione specifica cercando utilizzando il trasferimento
run_id.- Errore:
Network Attachment with connected endpoints cannot be deleted. Risoluzione:questo errore può verificarsi quando un utente tenta di eliminare gli allegati di rete subito dopo aver eliminato il trasferimento. Ciò accade perché possono essere necessari diversi giorni dopo l'eliminazione di un trasferimento prima che BigQuery Data Transfer Service possa rimuovere completamente tutte le risorse associate al trasferimento, il che può impedire l'eliminazione degli allegati di rete. Per risolvere questo errore, attendi alcuni giorni prima di provare a eliminare gli allegati di rete. Se vuoi che gli allegati di rete vengano eliminati prima, puoi contattare l'assistenza.
- Errore:
Error while reading data, error message: CSV processing encountered too many errors, giving up. Risoluzione:questo errore può verificarsi quando la configurazione del file CSV nell'origine dati non corrisponde a quella del file CSV nella configurazione del trasferimento. Ad esempio, questo errore può verificarsi se Righe di intestazione da ignorare è impostato su
0, ma il file CSV di origine contiene una o più righe di intestazione. Per correggere questo errore, verifica che la configurazione CSV nella configurazione del trasferimento sia corretta e che corrisponda alla configurazione del file CSV di origine.- Errore:
Error 400: DTS service agent needs iam.serviceAccounts.getAccessToken permission or [SERVICE_ACCOUNT] doesn't exist. Causa principale: questo errore indica che il service agent di BigQuery Data Transfer Service (DTS) non dispone dell'autorizzazione necessaria per rappresentare il service account utilizzato per il trasferimento. Ciò si verifica in genere in scenari di autorizzazione tra progetti o quando il trasferimento viene configurato utilizzando strumenti Infrastructure as Code (IaC) come Terraform.
Risoluzione: concedi il ruolo Creatore token account di servizio (
roles/iam.serviceAccountTokenCreator) all'agente di servizio DTS nell'account di servizio specifico che deve simulare l'identità.gcloud iam service-accounts add-iam-policy-binding service_account \ --member serviceAccount:service-destination_project_number@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com \ --role roles/iam.serviceAccountTokenCreator
Dove:
- service_account è l'email dell'account utilizzato per autorizzare il trasferimento.
- destination_project_number è il numero di progetto in cui risiede la configurazione di trasferimento. Per scoprire come identificare il numero del progetto, consulta Identificazione dei progetti.
- Errore:
For asset "ASSET", no eligible column found for splitting (Reason: Primary or Indexed Key columns found, but none are of supported types (INTEGER, TINYINT, SMALLINT, FLOAT, REAL, DOUBLE, NUMERIC, BIGINT, DECIMAL, DATE, BOOLEAN)) - Soluzione:questo errore può verificarsi quando tenti di trasferire più di 2.000.000 di record da una tabella di origine a una tabella BigQuery e nella tabella di origine non è presente una chiave primaria o una colonna indicizzata di tipo di dati supportato. Per risolvere il problema, configura una colonna con uno dei tipi di dati supportati come chiave primaria o colonna indicizzata nella tabella di origine. Per maggiori informazioni, consulta la sezione relativa alle limitazioni della guida all'origine del trasferimento.
Problemi di autorizzazione e permessi
Di seguito sono riportati alcuni errori di autorizzazione comuni che puoi riscontrare quando trasferisci dati da diverse origini dati:
- Errore:
BigQuery Data Transfer Service is not enabled for <project_id> - Errore:
BigQuery Data Transfer Service has not been used in project <project_id> before or it is disabled ... Risoluzione:verifica che il ruolo di service agent sia concesso con i seguenti passaggi:
Nella console Cloud de Confiance , vai alla pagina IAM e amministrazione.
Seleziona la casella di controllo Includi concessioni di ruoli fornite da S3NS.
Verifica che venga visualizzato il account di servizio con il nome
service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.como che gli sia stato concesso il ruolo Service agent BigQuery Data Transfer Service.
Se il account di servizio non viene visualizzato o non dispone del ruolo di service agent BigQuery Data Transfer Service, concedi il ruolo predefinito nella console Cloud de Confiance o eseguendo il seguente comando Google Cloud CLI:
gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com \ --role roles/bigquerydatatransfer.serviceAgentSostituisci
PROJECT_NUMBERcon il numero di progetto associato a questoaccount di serviziot.- Errore:
There was an error loading this table. Check that the table exists and that you have the correct permissions. Risoluzione:
Nella console Cloud de Confiance , vai alla pagina BigQuery.
Fai clic sul set di dati di destinazione utilizzato nel trasferimento.
Fai clic sul menu Condivisione e poi su Autorizzazioni.
Espandi il ruolo Editor dati BigQuery.
Verifica che l'agente di servizio BigQuery Data Transfer Service sia aggiunto a questo ruolo. In caso contrario, assegna il ruolo Data Editor di BigQuery (
roles/bigquery.dataEditor) all'agente di servizio BigQuery Data Transfer Service.
- Errore:
A permission denied error was encountered: PERMISSION_DENIED. Please ensure that the user account setting up the transfer config has the necessary permissions, and that the configuration settings are correct Risoluzione:
Nella console Cloud de Confiance , vai alla pagina Trasferimenti dati.
Fai clic sul trasferimento non riuscito e seleziona la scheda Configurazione.
Verifica che il proprietario del trasferimento elencato nel campo Utente disponga di tutte le autorizzazioni richieste per l'origine dati.
Se il proprietario del trasferimento non dispone di tutte le autorizzazioni richieste, concedi le autorizzazioni richieste aggiornando le sue credenziali. Puoi anche modificare il proprietario del trasferimento in un altro utente con le autorizzazioni richieste.
- Errore:
Authentication failure: User Id not found. Error code: INVALID_USERID Risoluzione:il proprietario del trasferimento ha un ID utente non valido. Modifica il proprietario del trasferimento in un altro utente aggiornando le sue credenziali. Se utilizzi un account di servizio, devi anche verificare che gli account che eseguono il trasferimento di dati dispongano di tutte le autorizzazioni necessarie per utilizzare un service account.
- Errore:
The user does not have permission Soluzione:verifica che il proprietario del trasferimento sia un account di servizio e che il servizio disponga di tutte le autorizzazioni richieste. Un'altra possibilità è che il account di servizio utilizzato sia stato creato in un progetto diverso da quello utilizzato per creare questo trasferimento. Per risolvere i problemi di autorizzazione tra progetti, consulta le seguenti risorse:
- Consenti l'allegato di service account in più progetti
- Autorizzazione del service account tra progetti (per concedere le autorizzazioni necessarie)
- Errore:
HttpError 403 when requesting returned "The caller does not have permission" googleapiclient.errors.HttpError: <HttpError 403 when requesting returned "The caller does not have permission". Details: "The caller does not have permission">Questo errore potrebbe essere visualizzato quando tenti di configurare una query pianificata con un account di serviziot.
Soluzione:assicurati che il account di servizio disponga di tutte le autorizzazioni necessarie per pianificare o modificare una query pianificata e che l'utente che configura la query pianificata abbia accesso al service account.
Se tutte le autorizzazioni corrette sono assegnate, ma continui a riscontrare l'errore, controlla se il criterio Disabilita l'utilizzo dei service account tra i progetti viene applicato al progetto per impostazione predefinita. Puoi verificare la presenza della policy nella console Cloud de Confiance andando a IAM e amministrazione > Policy dell'organizzazione e cercando la policy.

Se viene applicata la policy Disabilita l'utilizzo dei service account tra i progetti, puoi disattivarla procedendo nel seguente modo:
- Identifica i service account associati al progetto utilizzando la console Cloud de Confiance , andando a IAM e amministrazione > Service account. Questa visualizzazione mostra tutti i service account per il progetto corrente.
- Disattiva il criterio nel progetto in cui si trovano i service account utilizzando il seguente comando. Per disattivare questo criterio, l'utente deve essere un amministratore delle policy dell'organizzazione. Solo l'Amministratore organizzazione può concedere questo ruolo a un utente.
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=[PROJECT-ID]
Problemi di configurazione del trasferimento basato su eventi
Di seguito sono riportati alcuni problemi comuni che potresti riscontrare durante la creazione di un trasferimento basato sugli eventi.
- Errore:
Data Transfer Service is not authorized to pull message from the provided Pub/Sub subscription. Risoluzione:verifica che all'agente di servizio di BigQuery Data Transfer Service sia concesso il ruolo
pubsub.subscriber:Nella console Cloud de Confiance , vai alla pagina Pub/Sub.
Seleziona la sottoscrizione Pub/Sub che hai utilizzato nel trasferimento basato su eventi.
Se il riquadro informazioni è nascosto, fai clic su Mostra riquadro informazioni nell'angolo in alto a destra.
Nella scheda Autorizzazioni, verifica che l'agente di servizio BigQuery Data Transfer Service disponga del ruolo
pubsub.subscriber.

Se all'agente di servizio non è stato concesso il ruolo
pubsub.subscriber. Fai clic su Aggiungi entità per concedere il ruolopubsub.subscriberaservice-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com.- Errore:
Cloud Pub/Sub API has not been used in project PROJECT_NUMBER before or it is disabled. Risoluzione: verifica che l'API Cloud Pub/Sub sia abilitata per il tuo progetto:
Nella console Cloud de Confiance , vai alla pagina API e servizi.
Fai clic su Abilita API e servizi.
Cerca
Cloud Pub/Sub API, seleziona il primo risultato e fai clic su Attiva.
- Errore:
Data Transfer Service does not have required permission to use project quota of project PROJECT_NUMBER to access Pub/Sub. Risoluzione:verifica che all'agente di servizio di BigQuery Data Transfer Service sia concesso il ruolo
serviceusage.serviceUsageConsumer:Nella console Cloud de Confiance , vai alla pagina IAM e amministrazione.
Seleziona la casella di controllo Includi concessioni di ruoli fornite da S3NS.
Verifica che venga visualizzato il account di servizio con il nome
service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.come che gli sia stato concesso il ruolo Consumer Service Usage.
- Problema: quando utilizzi il trasferimento basato su eventi di Cloud Storage, non viene attivata alcuna esecuzione del trasferimento dopo il caricamento o l'aggiornamento dei file nel bucket Cloud Storage.
Le esecuzioni del trasferimento non vengono attivate immediatamente dopo la ricezione di un evento. L'attivazione di un'esecuzione del trasferimento potrebbe richiedere diversi minuti. Per controllare lo stato della successiva esecuzione del trasferimento, puoi controllare il campo Data di destinazione per la prossima esecuzione nella cronologia delle esecuzioni. Questo campo mostra l'ora pianificata per l'esecuzione successiva oppure In attesa di eventi per pianificare l'esecuzione successiva se non sono stati ricevuti eventi. Se hai caricato o aggiornato file nel bucket Cloud Storage, ma la Data di destinazione per la prossima esecuzione non è stata aggiornata e non vengono attivate esecuzioni per 10-20 minuti, consulta la seguente soluzione.
Risoluzione:verifica che l'abbonamento Pub/Sub specificato nella configurazione del trasferimento sia in grado di ricevere i messaggi pubblicati dagli eventi Cloud Storage:
Nella console Cloud de Confiance , vai alla pagina Pub/Sub.
Seleziona la sottoscrizione Pub/Sub che hai utilizzato nel trasferimento basato su eventi.
Nella scheda Metriche, controlla il grafico "Età del messaggio senza ACK meno recente" e verifica se sono presenti messaggi.

Se non vengono pubblicati messaggi, controlla che la notifica Pub/Sub sia configurata correttamente per Cloud Storage. Puoi utilizzare il seguente comando Google Cloud CLI per controllare le configurazioni di notifica associate al tuo bucket:
gcloud storage buckets notifications list gs://BUCKET_NAMESostituisci
BUCKET_NAMEcon il nome del bucket che utilizzi per la notifica. Per informazioni sulla configurazione di una notifica Pub/Sub per Cloud Storage, consulta Configurare la notifica Pub/Sub per Cloud Storage.Se sono presenti messaggi, verifica se la stessa sottoscrizione Pub/Sub viene utilizzata in altre configurazioni di trasferimento basate su eventi. La stessa sottoscrizione Pub/Sub non può essere riutilizzata da più configurazioni di trasferimento basate su eventi. Per saperne di più sui trasferimenti basati su eventi, consulta Trasferimenti basati su eventi.
Problemi relativi alle quote
- Errore:
Quota exceeded: Your project exceeded quota for imports per project. - Soluzione: verifica di non aver pianificato troppi trasferimenti nel tuo progetto. Per informazioni sul calcolo del numero di job di caricamento avviati da un trasferimento, consulta Quote e limiti.