Visualizzazione RESERVATIONS_TIMELINE
La visualizzazione INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
mostra
le sezioni temporali dei metadati di prenotazione per ogni progetto di amministrazione delle prenotazioni
per ogni minuto in tempo reale. Inoltre, l'array per_second_details
mostra i dettagli della scalabilità automatica per ogni secondo.
Autorizzazione obbligatoria
Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.RESERVATION_TIMELINE
, devi disporre
dell'autorizzazione Identity and Access Management (IAM) bigquery.reservations.list
per il
progetto.
Ciascuno dei seguenti ruoli IAM predefiniti include l'autorizzazione richiesta:
- Amministratore risorse BigQuery (
roles/bigquery.resourceAdmin
) - BigQuery Resource Editor (
roles/bigquery.resourceEditor
) - Visualizzatore risorse BigQuery (
roles/bigquery.resourceViewer
) - Utente BigQuery (
roles/bigquery.user
) - Amministratore BigQuery (
roles/bigquery.admin
)
Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Ruoli e autorizzazioni IAM di BigQuery.
Schema
Quando esegui una 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 gli eventi più vecchi di 180 giorni. Ogni periodo inizia a 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 |
Contiene informazioni sulla capacità di scalabilità automatica della prenotazione. I campi includono:
|
edition |
STRING |
La versione associata a questa prenotazione. Per ulteriori informazioni sulle versioni, vedi Introduzione alle versioni di BigQuery. |
ignore_idle_slots |
BOOL |
Falso se la condivisione di slot è abilitata, vero in caso contrario. |
labels |
RECORD |
Array di etichette associate alla prenotazione. |
period_start |
TIMESTAMP |
Ora di inizio di questo periodo di un minuto. |
per_second_details |
STRUCT |
Contiene informazioni sulla capacità e sull'utilizzo della prenotazione ogni secondo. I campi includono:
Se durante questo minuto vengono apportate modifiche alla scalabilità automatica o alla prenotazione, l'array viene compilato con 60 righe. Tuttavia, per le prenotazioni non scalabili automaticamente che rimangono invariate durante questo minuto, l'array è vuoto perché altrimenti ripeterebbe lo stesso numero 60 volte. |
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. Ha 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 degli slot per questa prenotazione, inclusa la condivisione degli slot. Se ignore_idle_slots è true, questo valore è uguale a slots_assigned , altrimenti è il numero totale di slot in tutti gli impegni di capacità nel progetto di amministrazione. |
max_slots |
INTEGER |
Il numero massimo di slot che questa prenotazione può utilizzare, che include
slot di riferimento (slot_capacity ), slot inattivi (se ignore_idle_slots è false) e
slot con scalabilità automatica. Questo campo viene specificato dagli utenti per utilizzare la funzionalità di prevedibilità delle prenotazioni. |
scaling_mode |
STRING |
La modalità di scalabilità per la prenotazione, che determina il modo in cui la prenotazione viene scalata dalla baseline a max_slots . Questo campo viene specificato dagli utenti per utilizzare la funzionalità di prevedibilità delle prenotazioni. |
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 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 Google Cloud 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
.
Il seguente esempio mostra l'utilizzo degli slot al secondo dei progetti assegnati a
YOUR_RESERVATION_ID
in tutti i job:
SELECT s.start_time AS period_start, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(s.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(s.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 JOIN 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 s.start_time AS period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(res.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(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 JOIN 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 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+