Esecuzione programmatica dei job
Per eseguire un job BigQuery in modo programmatico utilizzando l'API REST o le librerie client:
- Chiama il metodo
jobs.insert
. - Richiedi periodicamente la risorsa job ed esamina la proprietà status per sapere quando il job è completato.
- Controlla se il job è stato completato correttamente.
Prima di iniziare
Concedi i ruoli IAM (Identity and Access Management) che concedono agli utenti le autorizzazioni necessarie per eseguire ogni attività in questo documento.
Autorizzazioni obbligatorie
Per eseguire un job BigQuery, devi disporre dell'autorizzazione IAM bigquery.jobs.create
.
Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per eseguire un job:
roles/bigquery.user
roles/bigquery.jobUser
roles/bigquery.admin
Inoltre, quando crei un job, ti vengono concesse automaticamente le seguenti autorizzazioni per il job:
bigquery.jobs.get
bigquery.jobs.update
Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Job in esecuzione
Per eseguire un job in modo programmatico:
Avvia il job chiamando il metodo
jobs.insert
. Quando chiami il metodojobs.insert
, includi una rappresentazione della risorsa job.Nella sezione
configuration
della risorsa job, includi una proprietà secondaria che specifichi il tipo di job:load
,query
,extract
ocopy
.Dopo aver chiamato il metodo
jobs.insert
, controlla lo stato del job chiamandojobs.get
con l'ID e la posizione del job e controlla il valorestatus.state
per conoscere lo stato del job. Quandostatus.state
èDONE
, il job ha stopped running; tuttavia, uno statoDONE
non significa che il job è stato completato correttamente, ma solo che non è più in esecuzione.Verifica l'esito del job. Se il job ha una proprietà
errorResult
, significa che è stato eseguito con esito negativo. La proprietàstatus.errorResult
contiene informazioni che descrivono cosa è andato storto in un job non riuscito. Sestatus.errorResult
non è presente, il job è stato completato correttamente, anche se potrebbero essere stati rilevati alcuni errori non fatali, ad esempio problemi di importazione di alcune righe in un job di caricamento. Gli errori non fatali vengono restituiti nell'elencostatus.errors
del job.
Eseguire job utilizzando le librerie client
Per creare ed eseguire un job utilizzando le librerie client di Cloud per BigQuery:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery C#.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Aggiunta di etichette dei job
Le etichette possono essere aggiunte ai job di query tramite la riga di comando utilizzando il flag --label
dello strumento a riga di comando bq. Lo strumento bq supporta l'aggiunta di etichette solo ai job di query.
Puoi anche aggiungere un'etichetta a un job quando viene inviato tramite l'API specificando la proprietà labels
nella configurazione del job quando chiami il metodo jobs.insert
. L'API può essere utilizzata per aggiungere etichette a qualsiasi tipo di job.
Non puoi aggiungere o aggiornare le etichette per i job in attesa, in esecuzione o completati.
Quando aggiungi un'etichetta a un job, questa viene inclusa nei dati di fatturazione.
Per saperne di più, consulta Aggiungere etichette dei job.
Passaggi successivi
- Consulta Eseguire query per un esempio di codice che avvia e esegue il polling di un job relativo alla query.
- Per ulteriori informazioni sulla creazione di una rappresentazione della risorsa job, consulta la pagina Panoramica dei job nella documentazione di riferimento dell'API.