Visualizzazione JOBS_TIMELINE_BY_FOLDER
La vista 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 corrente, inclusi i job nelle sottocartelle al suo interno.
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 bigquery.jobs.listAll
Identity and Access Management (IAM) 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 visualizzazioni INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
, i risultati della query contengono una riga per ogni secondo di esecuzione di ogni job BigQuery. Ogni periodo inizia con 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 |
Numeri ID 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 di un'istruzione del job script o l'aggiornamento di una vista materializzata. |
statement_type |
STRING |
Il tipo di istruzione di query, se valido. 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. La suddivisione in parti si basa sull'ora UTC di questo timestamp. |
job_start_time |
TIMESTAMP |
Ora di inizio del job. |
job_end_time |
TIMESTAMP |
Ora di fine del 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 |
La versione associata alla prenotazione assegnata a questo job. Per ulteriori informazioni sulle versioni, consulta Introduzione alle versioni di BigQuery. |
total_bytes_billed |
INTEGER |
Se il progetto è configurato per utilizzare i prezzi on demand, questo campo contiene i byte totali fatturati per il job. Se il progetto è configurato per utilizzare i prezzi fissi, non ti verranno addebitati i byte e questo campo è solo informativo. |
total_bytes_processed |
INTEGER |
Byte totali elaborati dal job. |
error_result |
RECORD |
Dettagli dell'errore (se presenti) sotto forma di
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 dello shuffling nel periodo di tempo selezionato. |
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 nessuna 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 in esecuzione e la cronologia dei job negli ultimi 180 giorni.
Ambito e sintassi
Le query su questa visualizzazione devono includere un qualificatore regione. Se non specifichi un qualificatore regionale, i metadati vengono recuperati da tutte le regioni. La tabella seguente illustra 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 progetto Google Cloud. Se non specificato, viene utilizzato il progetto predefinito.
REGION
: qualsiasi nome della regione del set di dati.
Ad esempio: `region-us`
.
Esempi
Gli esempi riportati di seguito mostrano come eseguire query sulla vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
.
Ottenere il numero di job univoci
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 | +---------------------------+---------------------------------+
Calcola il tempo di slot utilizzato
La seguente query mostra il tempo di slot utilizzato per 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 | +---------------------------+---------------------------------+