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.

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_FOLDER, 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 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 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 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                           |
+---------------------------+---------------------------------+