JOBS_TIMELINE_BY_ORGANIZATION visualizzazione
La visualizzazione INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
contiene metadati BigQuery in tempo reale per timelice 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 una query sulla visualizzazione INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
, è necessaria l'autorizzazione bigquery.jobs.listAll
Identity and Access Management (IAM) 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 schema JOBS_BY_ORGANIZATION
è disponibile solo per gli utenti con organizzazioni Google Cloud 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 ciclo inizia con un intervallo di 1 secondo 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 |
Slot in millisecondi utilizzati in questo periodo. |
period_shuffle_ram_usage_ratio |
FLOAT |
Rapporto di utilizzo casuale nel periodo di tempo selezionato. |
project_id |
STRING |
(Colonna di clustering) dell'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. |
job_id |
STRING |
ID del lavoro. Ad esempio, bquxjob_1234 . |
job_type |
STRING |
Il tipo di prestazione. Può essere QUERY , LOAD ,
EXTRACT , COPY o null . Il tipo
di job null indica un job interno, ad esempio la valutazione di
un'istruzione di script o l'aggiornamento di una visualizzazione materializzata. |
statement_type |
STRING |
Il tipo di istruzione di query, se valido. Ad esempio,
SELECT , INSERT , UPDATE o DELETE . |
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 |
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. |
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_estimated_runnable_units |
INTEGER |
Unità di lavoro che possono essere programmate 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. |
Conservazione dei dati
Questa visualizzazione contiene i job attualmente in esecuzione e la cronologia dei job degli ultimi 180 giorni.
Ambito e sintassi
Le query su questa vista devono includere un qualificatore per area geografica. Se non specifichi un qualificatore a livello di regione, i metadati vengono recuperati da tutte le regioni. La seguente tabella spiega l'ambito dell'area geografica per questa visualizzazione:
Nome visualizzazione | Ambito delle risorse | 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 progetto Cloud. Se non è specificato, viene utilizzato il progetto predefinito. REGION
: qualsiasi nome della regione del set di dati. Ad esempio:region-us
.
Esempi
Esempio: visualizzazione dell'utilizzo totale degli slot al minuto
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 dello slot al minuto dai progetti assegnati a
YOUR_RESERVATION_ID
in tutti i job:
SELECT res.period_start, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slot_assigned, ANY_VALUE(res.slots_max_assigned) AS slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start AND jobs.reservation_id = res.reservation_id WHERE jobs.job_creation_time 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_minutes | slots_assigned| slots_max_assigned| +-----------------------+---------------------+---------------+-------------------+ |2021-06-08 21:33:00 UTC| 100.000 | 100 | 100 | |2021-06-08 21:32:00 UTC| 96.753 | 100 | 100 | |2021-06-08 21:31:00 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+---------------+-------------------+
Esempio: utilizzo degli slot per prenotazione
L'esempio seguente mostra l'utilizzo dello slot al minuto per ogni prenotazione nell'ultimo giorno:
SELECT res.period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slots_assigned, ANY_VALUE(res.slots_max_assigned) AS slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start AND jobs.reservation_id = res.reservation_id WHERE jobs.job_creation_time 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_minutes | slot_assigned | slots_max_assigned | +-----------------------+----------------+---------------------+---------------+--------------------+ |2021-06-08 21:33:00 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:00 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:00 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:00 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+---------------+--------------------+