Visualizzazione PRENOTAZIONI
La visualizzazione INFORMATION_SCHEMA.RESERVATIONS
contiene un elenco quasi in tempo reale di tutte le prenotazioni correnti all'interno del progetto di amministrazione. Ogni riga rappresenta una singola prenotazione corrente. Una prenotazione corrente è una prenotazione che non ha
eliminati. Per ulteriori informazioni sulla prenotazione, consulta
Introduzione alle prenotazioni.
Autorizzazione obbligatoria
Per eseguire query sulla vista INFORMATION_SCHEMA.RESERVATIONS
, devi disporre
l'autorizzazione bigquery.reservations.list
Identity and Access Management (IAM) per
progetto.
Ciascuno dei seguenti ruoli IAM predefiniti include l'autorizzazione obbligatoria:
roles/bigquery.resourceAdmin
roles/bigquery.resourceEditor
roles/bigquery.resourceViewer
roles/bigquery.user
roles/bigquery.admin
Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.
Schema
La vista INFORMATION_SCHEMA.RESERVATIONS
ha il
seguente schema:
Nome colonna | Tipo di dati | Valore |
---|---|---|
ddl |
STRING |
L'istruzione DDL utilizzata per creare questa prenotazione. |
project_id |
STRING |
ID del progetto di amministrazione. |
project_number |
INTEGER |
Numero del progetto di amministrazione. |
reservation_name |
STRING |
Nome prenotazione fornito dall'utente. |
ignore_idle_slots |
BOOL |
Se il valore è false, tutte le query che utilizzano questa prenotazione possono utilizzare gli slot inattivi inutilizzati da altri impegni di capacità. |
slot_capacity |
INTEGER |
Base di riferimento della prenotazione. |
target_job_concurrency |
INTEGER |
Il numero target di query che possono essere eseguite contemporaneamente, ovvero limitati dalle risorse disponibili. Se è pari a zero, questo valore viene calcolato automaticamente in base alle risorse disponibili. |
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. |
Ambito e sintassi
Le query su questa visualizzazione devono includere un qualificatore regione. Se non specifichi un qualificatore regionale, i metadati vengono recuperati da tutti regioni. La tabella seguente spiega l'ambito della regione per questa visualizzazione:
Nome vista | Ambito risorsa | Ambito regione |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_BY_PROJECT] |
Livello progetto | REGION |
- Facoltativo:
PROJECT_ID
: l'ID del tuo progetto Google Cloud. Se non viene specificato, viene utilizzato il progetto predefinito.
REGION
: qualsiasi nome della regione del set di dati. Ad esempio:`region-us`
.
Unione tra le visualizzazioni della prenotazione e quelle del job
Le visualizzazioni job contengono la colonna
reservation_id
. Se il job è stato eseguito in un progetto con una prenotazione assegnata, reservation_id
seguirà questo formato:
reservation-admin-project:reservation-location.reservation-name
.
Per unire le visualizzazioni delle prenotazioni e le visualizzazioni dei job, puoi unire la colonna delle visualizzazioni dei job reservation_id
e le colonne delle visualizzazioni delle prenotazioni project_id
e reservation_name
. L'esempio seguente mostra un utilizzo della clausola JOIN
tra la prenotazione e le visualizzazioni dei job.
Esempio
L'esempio seguente mostra l'utilizzo degli slot, la capacità degli slot e la prenotazione assegnata per un progetto con un'assegnazione di prenotazione nell'ultima ora. L'utilizzo dello slot viene fornito in unità di millisecondi di slot al secondo.
WITH job_data AS ( SELECT job.period_start, job.reservation_id, job.period_slot_ms, job.job_id, job.job_type FROM `my-project.region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE AS job WHERE job.period_start > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)) SELECT reservation.reservation_name AS reservation_name, job.period_start, reservation.slot_capacity, job.period_slot_ms, job.job_id, job.job_type FROM job_data AS job INNER JOIN `reservation-admin-project.region-us`.INFORMATION_SCHEMA.RESERVATIONS AS reservation ON (job.reservation_id = CONCAT(reservation.project_id, ":", "US", ".", reservation.reservation_name));
L'output è simile al seguente:
+------------------+---------------------+---------------+----------------+------------------+----------+
| reservation_name | period_start | slot_capacity | period_slot_ms | job_id | job_type |
+------------------+---------------------+---------------+----------------+------------------+----------+
| my_reservation | 2021-04-30 17:30:54 | 100 | 11131 | bquxjob_66707... | QUERY |
| my_reservation | 2021-04-30 17:30:55 | 100 | 49978 | bquxjob_66707... | QUERY |
| my_reservation | 2021-04-30 17:30:56 | 100 | 9038 | bquxjob_66707... | QUERY |
| my_reservation | 2021-04-30 17:30:57 | 100 | 17237 | bquxjob_66707... | QUERY |
Questa query utilizza la vista RESERVATIONS
per recuperare le informazioni sulle prenotazioni. Se le prenotazioni sono cambiate nell'ultima ora, la colonna reservation_slot_capacity
potrebbe non essere accurata.
La query unisce RESERVATIONS
con
JOBS_TIMELINE
per
associare gli istanti nel tempo del job alle informazioni sulla prenotazione.