Esecuzione programmatica dei job
L'API REST e le librerie client di BigQuery ti consentono di creare e gestire job asincroni per automatizzare le operazioni di caricamento, query, estrazione e copia dalle tue applicazioni. Dopo aver avviato un job chiamando il metodo jobs.insert, puoi eseguire il polling della proprietà status della risorsa del job per monitorare il completamento dell'esecuzione e verificare se l'operazione è riuscita.
Prima di iniziare
Concedi i ruoli IAM (Identity and Access Management) che forniscono 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.userroles/bigquery.jobUserroles/bigquery.admin
Inoltre, quando crei un job, ti vengono concesse automaticamente le seguenti autorizzazioni per quel job:
bigquery.jobs.getbigquery.jobs.update
Per saperne di più 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
configurationdella risorsa del job, includi una proprietà secondaria che specifichi il tipo di job:load,query,extractocopy.Dopo aver chiamato il metodo
jobs.insert, controlla lo stato del job chiamandojobs.getcon l'ID job e la località e controlla il valorestatus.stateper conoscere lo stato del job. Quandostatus.stateèDONE, il job ha smesso di essere eseguito. Tuttavia, lo statoDONEnon significa che il job è stato completato correttamente, ma solo che non è più in esecuzione.Verifica l'esito positivo del job. Se il job ha una proprietà
errorResult, significa che non è riuscito. La proprietàstatus.errorResultcontiene informazioni che descrivono cosa è andato storto in un job non riuscito. Sestatus.errorResultnon è presente, il job è stato completato correttamente, anche se potrebbero essersi verificati alcuni errori non irreversibili, ad esempio problemi di importazione di alcune righe in un job di caricamento. Gli errori non irreversibili vengono restituiti nell'elencostatus.errorsdel job.
Esecuzione di 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 di C# nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery C#.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 prestazione.
Non puoi aggiungere o aggiornare etichette ai job in attesa, in esecuzione o completati.
Quando aggiungi un'etichetta a un job, l'etichetta viene inclusa nei dati di fatturazione.
Per saperne di più, consulta Aggiunta di etichette dei job.
Passaggi successivi
- Consulta Esecuzione di query per un esempio di codice che avvia ed esegue il polling di un job di query.
- Per saperne di più sulla creazione di una rappresentazione della risorsa job, consulta la pagina Panoramica dei job nel riferimento API.