Visualizzazione JOBS_TIMELINE_BY_FOLDER
La visualizzazione INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER contiene metadati BigQuery quasi in tempo reale per intervallo di tempo per tutti i job inviati nella cartella principale del progetto attuale, inclusi i job nelle sottocartelle.
Questa visualizzazione contiene sia i job in esecuzione sia quelli completati.
Autorizzazioni obbligatorie
Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, devi disporre dell'autorizzazione Identity and Access Management (IAM) bigquery.jobs.listAll per la cartella principale. Ciascuno dei seguenti ruoli IAM predefiniti include l'autorizzazione richiesta:
- Amministratore cartelle
- Amministratore BigQuery
Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.
Schema
Quando esegui una query sulle viste INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*, i risultati della query contengono una riga per ogni secondo di esecuzione di ogni job BigQuery. Ogni periodo inizia a un intervallo di un secondo intero e
dura esattamente un secondo.
La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_* ha lo schema seguente:
| Nome colonna | Tipo di dati | Valore |
|---|---|---|
period_start |
TIMESTAMP |
Ora di inizio di questo periodo. |
period_slot_ms |
INTEGER |
Millisecondi slot consumati in questo periodo. |
project_id |
STRING |
(Colonna di clustering) ID del progetto. |
project_number |
INTEGER |
Numero del progetto. |
folder_numbers |
REPEATED INTEGER |
ID numerici delle cartelle che contengono il progetto, a partire dalla cartella che contiene immediatamente il progetto, seguita dalla cartella che contiene la cartella secondaria e così via. Ad esempio, se `folder_numbers` è `[1, 2, 3]`, la cartella `1` contiene immediatamente il progetto, la cartella `2` contiene `1` e la cartella `3` contiene `2`. |
user_email |
STRING |
(Colonna di clustering) Indirizzo email o account di servizio dell'utente che ha eseguito il job. |
job_id |
STRING |
ID del job. Ad esempio, bquxjob_1234. |
job_type |
STRING |
Il tipo di lavoro. Può essere QUERY, LOAD,
EXTRACT, COPY o null. Il tipo di job null indica un job interno, ad esempio la valutazione dell'istruzione del job di script o l'aggiornamento della vista materializzata. |
statement_type |
STRING |
Il tipo di istruzione di query, se valida. Ad esempio,
SELECT, INSERT, UPDATE o
DELETE. |
priority |
STRING |
La priorità di questo job. I valori validi includono INTERACTIVE e
BATCH. |
parent_job_id |
STRING |
ID del job principale, se presente. |
job_creation_time |
TIMESTAMP |
(Colonna di partizionamento) Ora di creazione di questo job. Il partizionamento si basa sull'ora UTC di questo timestamp. |
job_start_time |
TIMESTAMP |
Ora di inizio di questo job. |
job_end_time |
TIMESTAMP |
Ora di fine di questo job. |
state |
STRING |
Stato di esecuzione del job alla fine di questo periodo. Gli stati validi
includono PENDING, RUNNING e
DONE. |
reservation_id |
STRING |
Nome della prenotazione principale assegnata a questo job alla fine di questo periodo, se applicabile. |
edition |
STRING |
L'edizione associata alla prenotazione assegnata a questo job. Per ulteriori informazioni sulle versioni, vedi Introduzione alle versioni di BigQuery. |
total_bytes_billed |
INTEGER |
Se il progetto è configurato per utilizzare i prezzi on demand, questo campo contiene il totale dei byte fatturati per il job. Se il progetto è configurato per utilizzare i prezzi a tariffa fissa, non ti vengono addebitati i byte e questo campo è solo informativo. |
total_bytes_processed |
INTEGER |
Byte totali elaborati dal job. |
error_result |
RECORD |
Dettagli dell'errore (se presente) come
ErrorProto.
|
cache_hit |
BOOLEAN |
Indica se i risultati della query di questo job provengono da una cache. |
period_shuffle_ram_usage_ratio |
FLOAT |
Rapporto di utilizzo shuffling nel periodo di tempo selezionato. Il valore è
0.0 se il job è stato eseguito con una prenotazione che utilizza lo scaling automatico
e ha zero slot di base. |
period_estimated_runnable_units |
INTEGER |
Unità di lavoro che possono essere pianificate immediatamente in questo periodo. Gli slot aggiuntivi per queste unità di lavoro accelerano la query, a condizione che nessun'altra query nella prenotazione richieda slot aggiuntivi. |
transaction_id |
STRING |
ID della transazione in cui è stato eseguito questo job, se presente. (Anteprima) |
Conservazione dei dati
Questa visualizzazione contiene i job attualmente in esecuzione e la cronologia dei job degli ultimi 180 giorni.
Ambito e sintassi
Le query su questa visualizzazione devono includere un qualificatore di regione. Se non specifichi un qualificatore regionale, i metadati vengono recuperati da tutte le regioni. La tabella seguente spiega l'ambito della regione per questa visualizzazione:
| Nome vista | Ambito risorsa | Ambito regione |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER |
Livello progetto | REGION |
-
(Facoltativo)
PROJECT_ID: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito. -
REGION: qualsiasi nome della regione del set di dati. Ad esempio:`region-us`.
Esempi
Gli esempi seguenti mostrano come eseguire query sulla vista
INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER.
Recuperare il numero di job unici
La seguente query mostra il numero di job unici in esecuzione al minuto nella cartella del progetto designato:
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, COUNT(DISTINCT job_id) AS unique_jobs FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f GROUP BY per_start ORDER BY per_start DESC;
Il risultato è simile al seguente:
+---------------------------+---------------------------------+ | per_start | unique_jobs | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 5 | | 2019-10-10 00:03:00 UTC | 2 | | 2019-10-10 00:02:00 UTC | 3 | | 2019-10-10 00:01:00 UTC | 4 | | 2019-10-10 00:00:00 UTC | 4 | +---------------------------+---------------------------------+
Calcolare il tempo di slot utilizzato
La seguente query mostra il tempo slot utilizzato al minuto nella cartella del progetto designato:
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, SUM(period_slot_ms) AS slot_ms FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f AND reservation_id = "my reservation id" AND statement_type != "SCRIPT" GROUP BY per_start ORDER BY per_start DESC;
Il risultato è simile al seguente:
+---------------------------+---------------------------------+ | per_start | slot_ms | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 500 | | 2019-10-10 00:03:00 UTC | 1000 | | 2019-10-10 00:02:00 UTC | 3000 | | 2019-10-10 00:01:00 UTC | 4000 | | 2019-10-10 00:00:00 UTC | 4000 | +---------------------------+---------------------------------+