Risolvi i problemi relativi alle configurazioni di trasferimento

Esamina la cronologia e i log delle esecuzioni di BigQuery Data Transfer Service per diagnosticare e risolvere gli errori comuni di configurazione, autorizzazione, quota e pianificazione. Puoi risolvere i problemi di configurazione generale, correggere gli errori di autorizzazione e recuperare i trasferimenti non riusciti nelle origini dati.

Se riscontri un problema non trattato in questo documento, puoi richiedere assistenza. Prima di contattare l'assistenza clienti Google Cloud, registra le informazioni sulla configurazione e sull'esecuzione del trasferimento. Per saperne di più, consulta Recupera i dettagli del trasferimento e Visualizza i dettagli dell'esecuzione del trasferimento e i messaggi di log.

Esamina gli errori

Se l'esecuzione del trasferimento iniziale non riesce, 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 un'esecuzione del job specifica
  • CONFIG_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 del trasferimento basato su eventi potrebbe non riuscire ad 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 generali di trasferimento, verifica quanto segue:

  • Verifica di aver completato tutti i passaggi della sezione "Prima di iniziare" della pagina della documentazione relativa al tipo di trasferimento.
  • Le proprietà della 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 trovare soluzioni ai problemi più comuni.

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 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 di sovrascrittura durante l'impostazione di questi job di BigQuery Data Transfer Service causa errori di quota a seconda della quantità di dati esportati. Per informazioni sulla risoluzione dei problemi relativi alle quote, consulta Risolvi gli errori relativi a quote e limiti.

Se l'errore è dovuto ai job BigQuery Data Transfer Service per le esportazioni della 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 di 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 gli errori relativi a quote e limiti.

Errore: The caller does not have permission.

Risoluzione: verifica che l'account con cui hai eseguito l'accesso alla console Cloud de Confiance sia lo stesso che selezioni per BigQuery Data Transfer Service durante la creazione del trasferimento.

  • Account con accesso eseguito nella console Cloud de Confiance :

    Risoluzione dei problemi relativi alle autorizzazioni

  • Scegli un account per continuare con BigQuery Data Transfer Service:

    Risoluzione dei problemi relativi alle autorizzazioni

Errore: Access Denied: ... Permission bigquery.tables.get denied on table ...

Risoluzione: verifica che all'agente di servizio di BigQuery Data Transfer Service sia concesso il ruolo bigquery.dataEditor nel 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 concedere nuovamente l'autorizzazione, consulta Concedi 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 o modificando la configurazione del trasferimento in un set di dati di destinazione situato in una regione non limitata dalla policy dell'organizzazione.

Errore: Please look into the errors[] collection for more details.

Risoluzione: questo errore può verificarsi quando un trasferimento di dati non va a buon fine. Per saperne di più sul motivo per cui il trasferimento di dati non è riuscito, puoi utilizzare Cloud Logging per visualizzare i log. Puoi trovare i log per un'esecuzione specifica eseguendo una ricerca utilizzando l'run_id del trasferimento.

Errore: Network Attachment with connected endpoints cannot be deleted.

Risoluzione: questo errore può verificarsi quando un utente tenta di eliminare i collegamenti di rete subito dopo aver eliminato il trasferimento. Questo 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 dei collegamenti di rete. Per risolvere questo errore, attendi alcuni giorni prima di provare a eliminare i collegamenti di rete. Se vuoi che i collegamenti 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 esiste una mancata corrispondenza tra la configurazione del file CSV nell'origine dati e la configurazione del file CSV nella configurazione del trasferimento. Ad esempio, questo errore può verificarsi se l'opzione Righe di intestazione da saltare è impostata 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 l'agente di servizio BigQuery Data Transfer Service (DTS) non dispone dell'autorizzazione necessaria per impersonare il service account utilizzato per il trasferimento. In genere, questo accade in scenari di autorizzazione tra progetti o quando il trasferimento viene configurato utilizzando strumenti di Infrastructure as Code (IaC) come Terraform.

Risoluzione: concedi il ruolo Creatore token account di servizio (roles/iam.serviceAccountTokenCreator) all'agente di servizio DTS sul service account specifico di cui deve assumere 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'indirizzo email dell'account utilizzato per autorizzare il trasferimento.
  • destination_project_number è il numero di progetto in cui si trova la configurazione del trasferimento. Per scoprire come identificare il numero del progetto, consulta Trova il nome, il numero e l'ID del progetto.
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))
Risoluzione: 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 non esiste una chiave primaria o una colonna indicizzata di un tipo di dati supportato nella tabella di origine. 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 saperne di più, consulta la sezione sulle limitazioni della guida all'origine del trasferimento.
Errore: Permission bigquery.tables.create denied.

Sintomo:

Error code 7 : Access Denied : Dataset [PROJECT_ID]:[DATASET_ID] : Permission bigquery.tables.create denied on dataset [PROJECT_ID]:[DATASET_ID] (or it may not exist).

Un trasferimento di Cloud Storage non riesce con un errore di accesso negato per la creazione della tabella, anche se la tabella di destinazione esiste già e l'account di servizio dispone dei ruoli standard di editor di dati.

Causa: questo errore si verifica quando un'esecuzione di trasferimento di Cloud Storage coinvolge più di 10.000 file e non viene concessa l'autorizzazione bigquery.tables.create. Quando i trasferimenti superano i 10.000 file, il servizio suddivide i dati in tabelle di gestione temporanea create dinamicamente. Per farlo, è necessaria l'autorizzazione bigquery.tables.create anche se un progetto è registrato per i trasferimenti di volumi elevati (o ha un aumento della quota approvato).

Risoluzione: per trasferire correttamente più di 10.000 file, assicurati di soddisfare entrambi i seguenti requisiti:

  1. Verifica la registrazione della quota e delle funzionalità:assicurati che il tuo progetto sia registrato per i trasferimenti di Cloud Storage di volumi elevati (superiori a 10.000 file). Se devi trasferire più di 10.000 file, contatta l'assistenza per richiedere un aumento della quota per il numero massimo di file per esecuzione del trasferimento.

  2. Concedi le autorizzazioni IAM richieste:concedi al account di servizio o all'identità utente che esegue il trasferimento l'autorizzazione bigquery.tables.create sul set di dati di destinazione. Questa autorizzazione è inclusa nei ruoli BigQuery Data Editor (roles/bigquery.dataEditor) e BigQuery Admin (roles/bigquery.admin). Se continui a riscontrare errori dopo aver concesso le autorizzazioni necessarie, potresti dover contattare l'assistenza per confermare lo stato della tua lista consentita.

    Alternative: se non puoi concedere le autorizzazioni richieste o attendere un aumento della quota e una modifica della configurazione, prendi in considerazione le seguenti opzioni:

Problemi di autorizzazione e accesso

Di seguito sono riportati alcuni errori comuni relativi alle autorizzazioni che potresti riscontrare durante il trasferimento di dati da origini dati diverse:

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 agente di servizio sia concesso seguendo questi passaggi:

  1. Nella console Cloud de Confiance , vai alla pagina IAM e amministrazione.

    Vai a IAM e amministrazione

  2. Seleziona la casella di controllo Includi concessioni di ruoli fornite da S3NS.

  3. Verifica che venga visualizzato l'account di servizio con il nome service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com o che a BigQuery Data Transfer Service sia stato concesso il ruolo Agente BigQuery Data Transfer Service.

    Verifica se il account di servizio ha il ruolo di agente di servizio.

Se il account di servizio non viene visualizzato o non dispone del ruolo Agente di servizio BigQuery Data Transfer Service, concedi il ruolo predefinito nella console Cloud de Confiance o esegui 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.serviceAgent

Sostituisci PROJECT_NUMBER con il numero di progetto associato a questo account di servizio.

Errore: There was an error loading this table. Check that the table exists and that you have the correct permissions.

Risoluzione:

  1. Nella console Cloud de Confiance , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Fai clic sul set di dati di destinazione utilizzato nel trasferimento.

  3. Fai clic sul menu Condivisione e poi su Autorizzazioni.

  4. Espandi il ruolo BigQuery Data Editor.

  5. Verifica che l'agente di servizio BigQuery Data Transfer Service sia aggiunto a questo ruolo. In caso contrario, concedi il ruolo BigQuery Data Editor (roles/bigquery.dataEditor) al service agent di BigQuery Data Transfer Service.

Verifica che il ruolo BigQuery Data Editor sia stato aggiunto.

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:

  1. Nella console Cloud de Confiance , vai alla pagina Trasferimenti di dati.

    Vai a Trasferimenti di dati

  2. Fai clic sul trasferimento non riuscito, quindi seleziona la scheda Configurazione.

  3. 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 necessarie, concedi le autorizzazioni richieste aggiornando le sue credenziali. Puoi anche cambiare il proprietario del trasferimento con un altro utente con le autorizzazioni richieste.

Errore: Authentication failure: User Id not found. Error code: INVALID_USERID

Risoluzione: l'ID utente del proprietario del trasferimento non è valido. Cambia il proprietario del trasferimento con 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

Risoluzione: verifica che il proprietario del trasferimento sia un account di servizio e che il servizio disponga di tutti i set di autorizzazioni richiesti. 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 relativi alle autorizzazioni tra progetti, consulta le seguenti risorse:

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 servizio.

Risoluzione: 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 l'errore persiste, verifica se la policy Disabilita l'utilizzo dei service account tra progetti è applicata al progetto per impostazione predefinita. Puoi verificare la presenza della policy nella console Cloud de Confiance andando su IAM e amministrazione > Policy dell'organizzazione e cercandola.

Verifica se la norma di utilizzo dei service account tra progetti è applicata per un account di servizio.

Se la policy Disabilita l'utilizzo dei service account tra progetti è applicata, puoi disabilitarla nel seguente modo:

  1. Identifica i service account associati al progetto utilizzando la console Cloud de Confiance , andando su IAM e amministrazione > Service account. Questa visualizzazione mostra tutti i service account per il progetto corrente.
  2. Disattiva la policy nel progetto in cui si trovano i service account utilizzando il seguente comando. Per disattivare questa policy, l'utente deve essere un Organization Policy Administrator. 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 su 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:

  1. Nella console Cloud de Confiance , vai alla pagina Pub/Sub.

    Vai a Pub/Sub.

  2. Seleziona la sottoscrizione Pub/Sub che hai utilizzato nel trasferimento basato su eventi.

  3. Se il riquadro informazioni è nascosto, fai clic su Mostra riquadro informazioni nell'angolo in alto a destra.

  4. Nella scheda Autorizzazioni, verifica che il service agent di BigQuery Data Transfer Service disponga del ruolo pubsub.subscriber

Verifica se l'agente di servizio dispone dell'autorizzazione pubsub.subscriber per la sottoscrizione.

Se all'agente di servizio non è stato concesso il ruolo pubsub.subscriber. Fai clic su Aggiungi entità per concedere il ruolo pubsub.subscriber a service-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:

  1. Nella console Cloud de Confiance , vai alla pagina API e servizi.

    Vai su API e servizi

  2. Fai clic su Abilita API e servizi.

  3. Cerca Cloud Pub/Sub API, seleziona il primo risultato e fai clic su Abilita.

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:

  1. Nella console Cloud de Confiance , vai alla pagina IAM e amministrazione.

    Vai a IAM e amministrazione

  2. Seleziona la casella di controllo Includi concessioni di ruoli fornite da S3NS.

  3. Verifica che venga visualizzato il account di servizio con il nome service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com e che gli sia stato concesso il ruolo Service Usage Consumer.

    Verifica se il account di servizio ha il ruolo serviceusage.serviceUsageConsumer.

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 prossima esecuzione del trasferimento, puoi controllare il campo Data target per la prossima esecuzione nella cronologia delle esecuzioni. Questo campo mostra l'ora pianificata per l'esecuzione successiva o In attesa di eventi per pianificare l'esecuzione successiva se non sono stati ricevuti eventi. Se hai caricato o aggiornato i file nel bucket Cloud Storage, ma la Data target per la prossima esecuzione non è stata aggiornata e non vengono attivate esecuzioni per 10-20 minuti, consulta la seguente risoluzione.

Risoluzione: verifica che la sottoscrizione Pub/Sub specificata nella configurazione del trasferimento sia in grado di ricevere i messaggi pubblicati dagli eventi di Cloud Storage:

  1. Nella console Cloud de Confiance , vai alla pagina Pub/Sub.

    Vai a Pub/Sub.

  2. Seleziona la sottoscrizione Pub/Sub che hai utilizzato nel trasferimento basato su eventi.

  3. Nella scheda Metriche, controlla il grafico "Età del messaggio senza ACK meno recente" e verifica se sono presenti messaggi.

Verifica se vengono inviati messaggi

Se non vengono pubblicati messaggi, controlla se la notifica Pub/Sub è 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_NAME

Sostituisci BUCKET_NAME con il nome del bucket che utilizzi per la notifica. Per informazioni sulla configurazione di una notifica Pub/Sub per Cloud Storage, consulta Configura la notifica Pub/Sub per Cloud Storage.

Se sono presenti messaggi, controlla 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.
Risoluzione: verifica di non aver pianificato troppi trasferimenti in ingresso nel tuo progetto. Per informazioni sul calcolo del numero di job di caricamento avviati da un trasferimento, consulta Quote e limiti.
Errore: RESOURCE_EXHAUSTED: Rate limit exceeded. (o errori di limitazione di frequenza simili durante il trasferimento di dati da applicazioni di terze parti come ServiceNow, Facebook Ads, Confluence o PayPal)

Risoluzione: quando utilizzi BigQuery Data Transfer Service per importare dati da applicazioni di terze parti, gli errori di limitazione di frequenza possono essere causati dalla limitazione dell'estrazione dei dati da parte dell'applicazione di origine esterna, anziché dai limiti di importazione di BigQuery. Per risolvere questo errore, segui questi passaggi:

  • Verifica l'origine dell'errore: esamina i log di esecuzione del trasferimento. Se il messaggio di errore fa riferimento al connettore esterno o all'origine dati di terze parti, il limite di frequenza è stato applicato dalla piattaforma esterna.
  • Controlla i limiti di frequenza delle API nella piattaforma di terze parti: accedi alla tua piattaforma esterna per esaminare l'utilizzo delle API e i limiti di frequenza (ad esempio, l'upgrade di un'app Facebook Ads ad Accesso avanzato o la revisione dei limiti di frequenza delle API REST in entrata in ServiceNow) e assicurati che non esistano flussi di lavoro paralleli che condividono le stesse credenziali.
  • Riduci la frequenza dei trasferimenti o scagliona le pianificazioni: modifica la pianificazione della configurazione del trasferimento in modo che venga eseguita meno di frequente ed evita di eseguire trasferimenti paralleli sullo stesso account esterno contemporaneamente.