Visualizzazione RESERVATIONS_TIMELINE
La visualizzazione INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
mostra in tempo quasi reale i segmenti di tempo dei metadati delle prenotazioni per ogni progetto di amministrazione delle prenotazioni per ogni minuto.
Schema
Quando esegui query sulle visualizzazioni INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_*
, i risultati della query contengono una riga per ogni minuto di ogni prenotazione BigQuery negli ultimi 180 giorni e una riga per ogni minuto con modifiche alla prenotazione per eventuali occorrenze precedenti a 180 giorni. Ogni periodo inizia con un intervallo di un minuto intero e dura esattamente un minuto.
La vista INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT
ha lo schema seguente:
Nome colonna | Tipo di dati | Valore |
---|---|---|
autoscale |
STRUCT |
Informazioni sulla capacità di scalabilità automatica della prenotazione. I campi includono:
|
edition |
STRING |
La versione associata a questa prenotazione. Per ulteriori informazioni sulle versioni, consulta Introduzione alle versioni di BigQuery. |
ignore_idle_slots |
BOOL |
Falso se la condivisione degli slot è abilitata, altrimenti vero. |
labels |
RECORD |
Array di etichette associate alla prenotazione. |
period_start |
TIMESTAMP |
Ora di inizio di questo periodo di un minuto. |
project_id |
STRING |
ID del progetto di amministrazione delle prenotazioni. |
project_number |
INTEGER |
Numero del progetto. |
reservation_id |
STRING |
Per l'unione con la tabella jobs_timeline. Deve avere il formato project_id:location.reservation_name. |
reservation_name |
STRING |
Il nome della prenotazione. |
slots_assigned |
INTEGER |
Il numero di slot assegnati a questa prenotazione. |
slots_max_assigned |
INTEGER |
La capacità massima di slot per questa prenotazione, inclusa la condivisione degli slot. Se ignore_idle_slots è True, corrisponde a slots_assigned , altrimenti è il numero totale di slot in tutti gli impegni di capacità nel progetto di amministrazione. |
Ambito e sintassi
Le query su questa vista devono includere un qualificatore regione. Se non specifichi un qualificatore regionale, i metadati vengono recuperati da tutte le regioni. La tabella seguente illustra l'ambito della regione e delle risorse per questa visualizzazione:
Nome vista | Ambito risorsa | Ambito regione |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE[_BY_PROJECT] |
Livello progetto | 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`
.
Esempi
Esempio: visualizzare l'utilizzo totale degli slot per 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 degli slot al minuto dei 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 rough_slots_assigned, ANY_VALUE(res.slots_max_assigned) AS rough_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 | rough_slots_assigned| rough_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 spazio per 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 rough_slots_assigned, ANY_VALUE(res.slots_max_assigned) AS rough_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 | rough_slots_assigned | rough_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 | +-----------------------+----------------+---------------------+----------------------+--------------------------+