Vista JOBS_TIMELINE_BY_USER
La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_USER contiene i metadati BigQuery quasi in tempo reale per intervallo di tempo dei job inviati dall'utente corrente nel progetto corrente. Questa visualizzazione contiene i job attualmente in esecuzione e completati.
Autorizzazioni obbligatorie
Per eseguire query sulla vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_USER, devi disporre dell'autorizzazione Identity and Access Management (IAM) bigquery.jobs.list per il progetto.
Ognuno dei seguenti ruoli IAM predefiniti include l'autorizzazione richiesta:
- Project Viewer
- Utente BigQuery
Per saperne di più sulle autorizzazioni di 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 con un intervallo di un secondo intero e dura esattamente un secondo.
La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_* ha il seguente schema:
| Nome colonna | Tipo di dati | Valore |
|---|---|---|
period_start |
TIMESTAMP |
Ora di inizio di questo periodo. |
period_slot_ms |
INTEGER |
Millisecondi slot utilizzati in questo periodo. |
project_id |
STRING |
(Colonna di clustering) ID del progetto. |
project_number |
INTEGER |
Numero del progetto. |
user_email |
STRING |
(Colonna di clustering) Indirizzo email o account di servizio dell'utente che ha eseguito il job. |
principal_subject |
STRING |
Una rappresentazione di stringa dell'identità dell'entità che ha eseguito il job. |
job_id |
STRING |
ID del job. Ad esempio, bquxjob_1234. |
job_type |
STRING |
Il tipo di job. Può essere QUERY, LOAD,
EXTRACT, COPY o NULL. Un valore NULL indica un job in background. |
labels |
RECORD |
Array di etichette applicate al job come coppie chiave-valore. |
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 del job. Il partizionamento 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. |
reservation_group_path |
ARRAY<STRING> |
Il gruppo di prenotazioni a cui è collegata la prenotazione.
Ad esempio, se la prenotazione è collegata al gruppo my-group,
il campo reservation_group_path contiene un elenco
come: [my-group]. |
edition |
STRING |
La versione associata alla prenotazione assegnata a questo job. Per saperne di più sulle versioni, consulta Introduzione alle versioni di BigQuery. |
total_bytes_billed |
INTEGER |
Se il progetto è configurato per l'utilizzo dei prezzi on demand, questo campo contiene i byte totali fatturati per il job. Se il progetto è configurato per l'utilizzo dei prezzi con costo fisso, non ti vengono addebitati i byte e questo campo è solo a scopo informativo. Questo campo viene compilato solo per i job completati e contiene il numero totale di byte fatturati per l'intera durata del job. |
total_bytes_processed |
INTEGER |
Byte totali elaborati dal job. Questo campo viene compilato solo per i job completati e contiene il numero totale di byte elaborati per l'intera durata del 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 la scalabilità automatica e non ha slot di riferimento. |
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. |
global_query_info |
RECORD |
Informazioni su una query globale.
Contiene i seguenti campi:
|
Per garantire la stabilità, ti consigliamo di elencare esplicitamente le colonne nelle query dello schema di informazioni anziché utilizzare un carattere jolly (SELECT *). L'elenco esplicito delle colonne impedisce l'interruzione delle query se lo schema sottostante cambia.
Conservazione dei dati
Questa visualizzazione mostra i job in esecuzione insieme alla cronologia dei job degli ultimi 180 giorni.
Se un progetto viene migrato a un'organizzazione (da nessuna organizzazione o da un'altra), le informazioni sui job precedenti alla data di migrazione non sono accessibili tramite la visualizzazione INFORMATION_SCHEMA.JOBS_TIMELINE_BY_USER, poiché la visualizzazione conserva i dati solo a partire dalla data di migrazione.
Ambito e sintassi
Le query su questa vista devono includere un qualificatore di regione. Se non specifichi un qualificatore regionale, i metadati vengono recuperati da tutte le regioni. La tabella seguente illustra l'ambito delle regioni e delle risorse per questa visualizzazione:
| Nome vista | Ambito risorsa | Ambito della regione |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_USER |
Job inviati dall'utente corrente nel progetto specificato. | 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`.
Esempio
La seguente query mostra i millisecondi di slot totali consumati al secondo dai job inviati dall'utente corrente nel progetto designato:
SELECT period_start, SUM(period_slot_ms) AS total_period_slot_ms FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_USER GROUP BY period_start ORDER BY period_start DESC;
Il risultato è simile al seguente:
+---------------------------+---------------------------------+ | period_start | total_period_slot_ms | +---------------------------+---------------------------------+ | 2019-10-10 00:00:04 UTC | 118639 | | 2019-10-10 00:00:03 UTC | 251353 | | 2019-10-10 00:00:02 UTC | 1074064 | | 2019-10-10 00:00:01 UTC | 1124868 | | 2019-10-10 00:00:00 UTC | 1113961 | +---------------------------+---------------------------------+