Gestione dei job
Dopo aver inviato un job BigQuery, puoi visualizzarne i dettagli, elencare job, annullare un job, ripetere un un job oppure elimina i metadati del job.
Quando un job viene inviato, può trovarsi in uno dei seguenti stati:
PENDING
: il job è pianificato e in attesa di essere eseguito.RUNNING
: il lavoro è in corso.DONE
: il job è stato completato. Se il job viene completato senza errori, BigQuery segnala questo stato comeSUCCESS
. Se il job viene completato con errori, BigQuery segnala questo stato comeFAILURE
.
Prima di iniziare
Concedi ruoli IAM (Identity and Access Management) che concedono agli utenti le autorizzazioni necessarie per eseguire ogni attività in questo documento. Le autorizzazioni richieste per eseguire un'attività (se presenti) sono elencate nella sezione "Autorizzazioni richieste" dell'attività.
Visualizza i dettagli del job
Puoi visualizzare i dettagli del job utilizzando la console Google Cloud, a riga di comando bq, l'API o le librerie client. I dettagli includono dati e metadati, come il tipo di job, lo stato del job e l'utente che lo ha creato.
Autorizzazioni obbligatorie
Per visualizzare i dettagli del job, devi disporre dell'autorizzazione IAM bigquery.jobs.get
.
Questa autorizzazione ti viene concessa automaticamente per i job che crei.
Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per visualizzare i dettagli dei job:
roles/bigquery.admin
(ti consente di visualizzare i dettagli di tutti i job nel progetto)roles/bigquery.user
(ti consente di visualizzare i dettagli dei tuoi job)roles/bigquery.jobUser
(ti consente di visualizzare i dettagli delle tue offerte di lavoro)
Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery, vedi Autorizzazioni e ruoli predefiniti.
Visualizza i dettagli del job
Per visualizzare i dettagli del job:
Console
Vai alla pagina BigQuery.
Espandi il riquadro Cronologia job.
Seleziona il tipo di cronologia dei job da visualizzare:
- Per visualizzare le informazioni dei tuoi lavori recenti, fai clic su Personali cronologica.
- Per visualizzare le informazioni sui job recenti nel progetto, fai clic su Cronologia progetto.
Per visualizzare i dettagli di un job, fai clic sul job.
bq
Emetti bq show
con il flag --job=true
e un ID job.
Quando fornisci l'ID job, puoi utilizzare l'ID completo o il breve in un modulo di testo. Ad esempio, gli ID job elencati nella console Google Cloud sono completamente qualificati, ovvero includono il progetto e la posizione:
my-project-1234:US.bquijob_123x456_123y123z123c
Gli ID job nello strumento a riga di comando sono elencati in forma breve. L'ID progetto e la località non sono inclusi:
bquijob_123x456_123y123z123c
Per specificare la località del job, fornisci il flag --location
e imposta il valore
alla tua posizione. Questo flag è facoltativo se utilizzi l'ID job completo. Se includi --location
e stai utilizzando l'ID job completo, il flag --location
è
ignorato.
Il seguente comando richiede informazioni su un job:
bq --location=LOCATION show --job=true JOB_ID
Sostituisci quanto segue:
LOCATION
: il nome del località in cui viene eseguito il job. Ad esempio, se utilizzi BigQuery nella regione di Tokyo, imposta il valore del flag suasia-northeast1
. Puoi impostare un valore predefinito per la posizione utilizzando il file.bigqueryrc
. Se la posizione non è specificata nell'ID job o utilizzando il--location
flag, viene utilizzata la posizione predefinita.JOB_ID
: l'ID del job
Esempi
Il seguente comando recupera informazioni di riepilogo sul job
US.bquijob_123x456_123y123z123c
in esecuzione in myproject
:
bq show --job=true myproject:US.bquijob_123x456_123y123z123c
L'output è simile al seguente:
Job Type State Start Time Duration User Email Bytes Processed Bytes Billed Billing Tier Labels ---------- --------- ----------------- ---------- ------------------- ----------------- -------------- -------------- -------- extract SUCCESS 06 Jul 11:32:10 0:01:41 user@example.com
Per visualizzare i dettagli completi del job, inserisci quanto segue:
bq show --format=prettyjson --job=true myproject:US.bquijob_123x456_789y123z456c
L'output è simile al seguente:
{ "configuration": { "extract": { "compression": "NONE", "destinationUri": "[URI removed]", "destinationUris": [ "[URI removed]" ], "sourceTable": { "datasetId": "github_repos", "projectId": "bigquery-public-data", "tableId": "commits" } } }, "etag": "\"[etag removed]\"", "id": "myproject:bquijob_123x456_789y123z456c", "jobReference": { "jobId": "bquijob_123x456_789y123z456c", "projectId": "[Project ID removed]" }, "kind": "bigquery#job", "selfLink": "https://bigquery.googleapis.com/bigquery/v2/projects/federated-testing/jobs/bquijob_123x456_789y123z456c", "statistics": { "creationTime": "1499365894527", "endTime": "1499365894702", "startTime": "1499365894702" }, "status": { "errorResult": { "debugInfo": "[Information removed for readability]", "message": "Operation cannot be performed on a nested schema. Field: author", "reason": "invalid" }, "errors": [ { "message": "Operation cannot be performed on a nested schema. Field: author", "reason": "invalid" } ], "state": "DONE" }, "user_email": "user@example.com" }
API
Chiama jobs.get e fornisci i parametri jobId
e projectId
. (Facoltativo) Fornisci la location
e imposta il valore sul parametro location
in cui viene eseguito il job. Questo parametro è facoltativo se utilizzi
un ID job completo che include la località, ad esempio
my-project-1234:US.bquijob_123x456_123y123z123c
.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione su BigQuery, configura 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 per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Se hai bisogno di ulteriori informazioni per risolvere i problemi di un job, consulta le INFORMATION_SCHEMA.JOBS*
viste e i Log.
Elenco job in un progetto
BigQuery salva una cronologia di sei mesi di job per tutti i job di un progetto.
Puoi visualizzare la cronologia dei job nei seguenti modi:
- Utilizzando la console Google Cloud.
- Utilizza il comando
bq ls
. - Chiamata al metodo API
jobs.list
. - Utilizzare le librerie client.
La cronologia dei job include i job nello stato RUNNING
e quelli
DONE
(indicati come stato SUCCESS
o FAILURE
).
Autorizzazioni obbligatorie
Per elencare tutti i job che hai creato in un progetto, devi disporre dell'autorizzazione IAM bigquery.jobs.create
. Per elencare tutti i job creati da tutti gli utenti di un progetto, devi disporre dell'autorizzazione IAM bigquery.jobs.list
. Puoi vedere solo i dettagli completi dei job che crei. I dettagli dei job creati da altri utenti vengono oscurati.
Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per elencare i job:
roles/bigquery.admin
(ti consente di elencare tutti i job nel progetto)roles/bigquery.user
(consente di elencare tutti i job del progetto)roles/bigquery.jobUser
(ti consente di elencare i tuoi lavori)
Per elencare tutti i job in un progetto e i relativi dettagli, devi disporre dell'autorizzazione IAM bigquery.jobs.listAll
.
Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per elencare tutti i job, inclusi i relativi dettagli:
roles/bigquery.admin
roles/bigquery.resourceAdmin
Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery, vedi Autorizzazioni e ruoli predefiniti.
Elenca job
BigQuery elenca i job per tutte le località.
Per elencare i job in un progetto:
Console
Vai alla pagina BigQuery.
Espandi il riquadro Cronologia job.
Per elencare tutti i job in un progetto, fai clic su Cronologia progetto. Se non sei il proprietario del progetto, potresti non avere l'autorizzazione per visualizzare tutti i job per un progetto. I job più recenti sono elencati per primi.
Per elencare i tuoi lavori, fai clic su Cronologia personale.
bq
Emetti bq ls
con uno dei seguenti flag:
--jobs=true
o-j
: identifica i job come tipo di risorsa da elencare.--all=true
o-a
: elenca i lavori di tutti gli utenti. Per visualizzare i dettagli completi (non oscurati) di tutti i job, devi disporre delle autorizzazionibigquery.jobs.listAll
.--min_creation_time
: elenca i job dopo un valore del timestamp fornito. Questo valore è rappresentato come timestamp dell'epoca di Unix in millisecondi.--max_creation_time
: elenca i job prima di un timestamp fornito valore. Questo valore è rappresentato da un Timestamp in millisecondi di Unix epoch.--max_results
o-n
limita i risultati. Il valore predefinito è 50 risultati.
bq ls --jobs=true --all=true \ --min_creation_time=MIN_TIME \ --max_creation_time=MAX_TIME \ --max_results=MAX_RESULTS \ PROJECT_ID
Sostituisci quanto segue:
MIN_TIME
: un numero intero che rappresenta un Epoca Unix in millisecondi.MAX_TIME
: un numero intero che rappresenta un Epoca Unix in millisecondi.MAX_RESULTS
: un numero intero che indica il numero di job restituiti.PROJECT_ID
: l'ID del progetto che contiene i job che stai elencando. Se imposti un progetto predefinito, non è necessario specificare il parametroPROJECT_ID
.
Esempi
Il comando seguente elenca tutti i job per l'utente corrente. Esecuzione di questo
richiede le autorizzazioni bigquery.jobs.list
.
bq ls --jobs=true myproject
Il seguente comando elenca tutti i job per tutti gli utenti. L'esecuzione di questo comando richiede le autorizzazioni bigquery.jobs.listAll
.
bq ls --jobs=true --all=true myproject
Il seguente comando elenca i 10 job più recenti in myproject
:
bq ls --jobs=true --all=true --max_results=10 myproject
Il seguente comando elenca tutti i job inviati prima del 3 marzo 2032 alle 04:04:00. Questo timestamp (in millisecondi) è equivalente al seguente valore intero: 1961899440000
.
bq ls --jobs=true --max_creation_time=1961899440000
API
Chiama jobs.list e fornisci il parametro projectId
. Per elencare i job per tutti gli utenti, imposta allUsers
su true
. L'impostazione di allUsers
su true
richiede
Autorizzazioni bigquery.jobs.listAll
.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.
Per autenticarti a 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 per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Annulla job
Puoi annullare un job RUNNING
o PENDING
nei seguenti modi:
- Utilizzo della console Google Cloud.
- Utilizza il comando
bq cancel
. - L'utilizzo del
BQ.JOBS.CANCEL
di sistema in una query SQL. - Chiamando il metodo dell'API
jobs.cancel
. - Utilizzo delle librerie client.
Anche se il job può essere annullato, il successo non è garantito. Il job potrebbe essere stato completato al momento dell'invio della richiesta di annullamento oppure potrebbe essere in una fase in cui non può essere annullato.
Autorizzazioni obbligatorie
Per annullare un job, devi disporre dell'autorizzazione IAM bigquery.jobs.update
.
Ti viene concessa automaticamente questa autorizzazione per i job che crei.
Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per annullare un job:
roles/bigquery.admin
(ti consente di annullare qualsiasi job nel progetto)roles/bigquery.user
(ti consente di annullare i job)roles/bigquery.jobUser
(ti consente di annullare i job)
Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery, vedi Autorizzazioni e ruoli predefiniti.
Annullare un job
In genere l'annullamento di un job richiede meno di un minuto.
Per annullare un job:
Console
Vai alla pagina BigQuery.
Fai clic su Crea nuova query e inserisci una query.
Per eseguire la query, fai clic su Esegui.
Per annullare un lavoro, fai clic su Annulla.
SQL
Utilizza la procedura di sistema BQ.JOBS.CANCEL
:
CALL BQ.JOBS.CANCEL('JOB_ID');
Sostituisci JOB_ID con l'ID del job che stai annullando.
Se ti trovi in un progetto diverso, ma nella stessa regione del job, vuoi annullare, devi includere anche l'ID progetto:
CALL BQ.JOBS.CANCEL('PROJECT_ID.JOB_ID');
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene il job che stai annullandoJOB_ID
: l'ID del job che stai annullando
La procedura viene restituita immediatamente e BigQuery annulla lavoro subito dopo. Se il job è già riuscito o non è riuscito, la procedura non ha alcun effetto.
bq
Esegui il comando bq cancel
con l'argomento JOB_ID
. Puoi richiedere
annullare e tornare immediatamente utilizzando il flag --nosync=true
. Di
predefinita, le richieste di annullamento attendono il completamento.
Quando fornisci l'argomento JOB_ID
, puoi utilizzare il metodo
l'ID completo o lo Short
in un modulo di testo. Ad esempio, gli ID job elencati nella console Google Cloud sono completamente qualificati, ovvero includono il progetto e la posizione:
my-project-1234:US.bquijob_123x456_123y123z123c
Gli ID job nello strumento a riga di comando bq sono elencati utilizzando la forma abbreviata. ID progetto e località non sono incluse:
bquijob_123x456_123y123z123c
Per specificare la posizione del job, fornisci il flag --location
e imposta il valore sulla tua posizione. Questo flag è facoltativo se utilizzi l'ID job completo. Se includi il flag --location
e utilizzi l'ID job completo, il flag --location
viene ignorato.
Il comando seguente richiede l'annullamento del job e attende il completamento. Se viene fornito l'ID job completo, il flag --location
viene ignorato:
bq --location=LOCATION cancel JOB_ID
Il seguente comando richiede l'annullamento del job e restituisce immediatamente. Se viene fornito l'ID job completo, il flag --location
viene ignorato:
bq --location=LOCATION --nosync cancel JOB_ID
Sostituisci quanto segue:
LOCATION
(facoltativo): il nome del località in cui viene eseguito il job. Ad esempio, se utilizzi BigQuery nella regione di Tokyo, imposta il valore del flag suasia-northeast1
. Puoi impostare un valore predefinito per la località utilizzando il File.bigqueryrc
.JOB_ID
: l'ID del job che stai annullando. Se copi l'ID job dalla console Google Cloud, l'ID progetto località sono incluse nell'ID job. Ad esempio:my-project-1234:US.bquijob_123x456_123y123z123c
.
Esempi
Il seguente comando annulla il job my-project-1234:US.bquijob_123x456_123y123z123c
in esecuzione nella località multiregione US
del progetto my-project-1234
e attende il completamento. Poiché viene usato l'ID job completo, il flag località
non specificato.
bq cancel my-project-1234:US.bquijob_123x456_123y123z123c
Il seguente comando annulla il job bquijob_123x456_123y123z123c
in esecuzione
nella località multiregionale US
nel progetto my-project-1234
e attende
della
completamento. Poiché viene utilizzato il formato breve dell'ID job, viene fornito il flag --location
.
bq --location=US cancel bquijob_123x456_123y123z123c
Il seguente comando annulla il job bquijob_123x456_123y123z123c
in esecuzione
nella località multiregionale US
nel progetto my-project-1234
,
e restituisce immediatamente.
Poiché viene utilizzato l'ID job completo, il flag --location
non viene fornito.
bq --nosync cancel my-project-1234:US.bquijob_123x456_123y123z123c
API
Chiama jobs.cancel e fornisci i parametri jobId
e projectId
. Fornisci location
e imposta il valore sul parametro location
in cui viene eseguito il job.
Vai
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione su BigQuery, configura 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 per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Elimina metadati del job
Puoi eliminare i metadati per un job specifico utilizzando lo strumento a riga di comando bq e la libreria client Python. BigQuery conserva una cronologia dei job eseguiti negli ultimi 6 mesi. Puoi usare questo metodo per rimuovere le informazioni sensibili che potrebbero essere presenti nelle istruzioni della query. I metadati del job possono essere eliminati solo al termine del job. Se un job ha creato job figlio, questi vengono eliminati. L'eliminazione dei job figli non è consentita. Puoi eliminare solo i job padre o di primo livello.
Autorizzazioni obbligatorie
Per eliminare i metadati dei job, devi disporre dell'autorizzazione IAM bigquery.jobs.delete
.
Il ruolo IAM predefinito roles/bigquery.admin
include l'autorizzazione necessaria per eliminare i metadati del job.
Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Elimina metadati del job
bq
Esegui il comando bq rm
con il flag -j
e un ID job.
Quando fornisci l'ID job, puoi utilizzare l'ID completo o il breve in un modulo di testo. Ad esempio, gli ID job elencati nella console Google Cloud sono completamente qualificati, ovvero includono il progetto e la posizione:
my-project-1234:US.bquijob_123x456_123y123z123c
Gli ID job nello strumento a riga di comando bq sono elencati utilizzando la forma abbreviata. L'ID progetto e la posizione non sono inclusi:
bquijob_123x456_123y123z123c
Per specificare la posizione del job, fornisci il flag --location
e imposta il valore sulla tua posizione. Questo flag è facoltativo
se utilizzi l'ID job completo. Se includi il flag --location
e utilizzi l'ID job completo, il flag --location
viene ignorato.
Il seguente comando elimina un job:
bq --location=location \ --project_id=project_id \ rm -j job_id
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 a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Ripeti job
Non è possibile ripetere un job utilizzando lo stesso ID job. Puoi invece creare un'immagine un nuovo job con la stessa configurazione. Quando invii il nuovo job nella console Google Cloud o nello strumento a riga di comando bq, viene assegnato un nuovo ID job. Quando invii il job utilizzando l'API o le librerie client, devi generare un nuovo ID job.
Autorizzazioni obbligatorie
Per eseguire un job, devi disporre dell'autorizzazione IAM bigquery.jobs.create
.
Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per eseguire un job:
roles/bigquery.admin
roles/bigquery.user
roles/bigquery.jobUser
Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Ripeti un job
Per ripetere un job:
Console
Per ripetere un job di query, segui questi passaggi:
Vai alla pagina BigQuery.
Espandi il riquadro Cronologia job.
Per elencare tutti i tuoi lavori, fai clic su Cronologia personale. Per elencare tutti i job di un progetto, fai clic su Cronologia del progetto.
Fai clic su un job di query per aprire i relativi dettagli.
Per ripetere una query, fai clic su Apri come nuova query.
Fai clic su Esegui.
Per ripetere un job di caricamento:
Vai alla pagina BigQuery.
Espandi il riquadro Cronologia job.
Per elencare tutti i tuoi job, fai clic su Cronologia personale. Per elencare tutti in un progetto, fai clic su Cronologia progetto.
Fai clic su un job di caricamento per aprire i relativi dettagli.
Per ripetere un job, fai clic su Ripeti il job di caricamento.
bq
Esegui di nuovo il comando e BigQuery automaticamente genera un job con un nuovo ID job.
API
Non esiste un metodo di chiamata singola per ripetere un job. Se vuoi ripetere un job specifico:
Chiama
jobs.get
per recuperare la risorsa da ripetere per il job.Rimuovi i campi id, status e statistics. Modifica il campo jobId con un nuovo valore generato dal codice del cliente. Modifica gli altri campi in base alle necessità.
Chiama
jobs.insert
con la risorsa modificata e il nuovo ID job per avviare il nuovo job.