Visualizzazione JOBS_TIMELINE_BY_ORGANIZATION
La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION contiene metadati BigQuery quasi in tempo reale per intervallo di tempo per tutti i job inviati nell'organizzazione associata al progetto corrente.
Questa visualizzazione contiene i job attualmente in esecuzione e completati.
Autorizzazioni obbligatorie
Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION, devi disporre dell'autorizzazione IAM (Identity and Access Management) bigquery.jobs.listAll per l'organizzazione.
Ciascuno dei seguenti ruoli IAM predefiniti include l'autorizzazione richiesta:
- Amministratore risorse BigQuery a livello di organizzazione
- Proprietario dell'organizzazione
- Amministratore dell'organizzazione
La tabella dello schema JOBS_BY_ORGANIZATION è disponibile solo per gli utenti con organizzazioniCloud de Confiance by S3NS definite.
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. |
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 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. |
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 |
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 i byte totali fatturati per il job. Se il progetto è configurato per utilizzare i prezzi a tariffa fissa, i byte non ti vengono fatturati. Questo campo non è configurabile. |
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 scalabilità automatica
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. |
Per garantire la stabilità, ti consigliamo di elencare esplicitamente le colonne nelle query dello schema delle 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 e la 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_ORGANIZATION,
in quanto la visualizzazione conserva solo i dati a partire dalla data di migrazione.
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 della regione |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION |
Organizzazione che contiene il progetto specificato | REGION |
-
(Facoltativo)
PROJECT_ID: l'ID del tuo Cloud de Confiance progetto. Se non specificato, viene utilizzato il progetto predefinito. -
REGION: qualsiasi nome della regione del set di dati. Ad esempio:`region-us`.
Esempi
Esempio: visualizzare l'utilizzo totale degli slot al secondo
Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto nel seguente formato:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION.
L'esempio seguente mostra l'utilizzo degli slot al secondo dei progetti assegnati a
YOUR_RESERVATION_ID in tutti i job:
SELECT jobs.period_start, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(COALESCE(s.slots_assigned, res.slots_assigned)) AS estimated_slots_assigned, ANY_VALUE(COALESCE(s.slots_max_assigned, res.slots_max_assigned)) AS estimated_slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id AND TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start LEFT JOIN UNNEST(res.per_second_details) s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.reservation_id = 'YOUR_RESERVATION_ID' AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start ORDER BY period_start DESC;
Il risultato è simile al seguente:
+-----------------------+---------------------+--------------------------+------------------------------+ | period_start | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| 96.753 | 100 | 100 | |2021-06-08 21:33:57 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+--------------------------+------------------------------+
Esempio: utilizzo degli slot per prenotazione
L'esempio seguente mostra l'utilizzo degli slot al secondo per ogni prenotazione nell'ultimo giorno:
SELECT jobs.period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(COALESCE(s.slots_assigned, res.slots_assigned)) AS estimated_slots_assigned, ANY_VALUE(COALESCE(s.slots_max_assigned, res.slots_max_assigned)) AS estimated_slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id AND TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start LEFT JOIN UNNEST(res.per_second_details) s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start, reservation_id ORDER BY period_start DESC, reservation_id;
Il risultato è simile al seguente:
+-----------------------+----------------+---------------------+--------------------------+------------------------------+ | period_start | reservation_id | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+----------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:57 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:56 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+