Vista JOBS_TIMELINE_BY_FOLDER

La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER contiene i 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 relative sottocartelle. Questa visualizzazione contiene sia i job in esecuzione sia quelli completati.

Autorizzazioni obbligatorie

Per eseguire query sulla vista 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:

  • Folder Admin
  • Amministratore 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.
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.
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. Il tipo di job null indica un job interno, ad esempio la valutazione dell'istruzione di un job di 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 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.
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 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. (Anteprima)
global_query_info RECORD Informazioni su una query globale. Contiene i seguenti campi:
  • parent_job_id: l'ID del job di query globale principale nella regione principale.
  • parent_job_location: la località del job di query globale principale.
  • remote_regions: un array di regioni remote a cui fa riferimento la query globale.
copy_job_statistics RECORD Statistiche per un job di copia.

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 vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, poiché la vista 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 della regione per questa visualizzazione:

Nome vista Ambito risorsa Ambito della regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER Livello progetto REGION
Sostituisci quanto segue:
  • (Facoltativo) PROJECT_ID: l'ID del tuo progetto Cloud de Confiance . 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.

Ottieni il numero di job unici

La seguente query mostra il numero di job univoci 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 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                           |
+---------------------------+---------------------------------+