Vista RESERVATIONS
La vista INFORMATION_SCHEMA.RESERVATIONS contiene un elenco quasi in tempo reale di tutte le prenotazioni attuali all'interno del progetto di amministrazione. Ogni riga rappresenta una singola prenotazione corrente. Una prenotazione attuale è una prenotazione che non è stata eliminata. Per saperne di più sulla prenotazione, consulta
Introduzione alle prenotazioni.
Autorizzazione obbligatoria
Per eseguire query sulla vista INFORMATION_SCHEMA.RESERVATIONS, devi disporre dell'autorizzazione IAM (Identity and Access Management) bigquery.reservations.list per il progetto.
Ognuno dei seguenti ruoli IAM predefiniti include l'autorizzazione richiesta:
- Amministratore risorse BigQuery (
roles/bigquery.resourceAdmin) - BigQuery Resource Editor (
roles/bigquery.resourceEditor) - BigQuery Resource Viewer (
roles/bigquery.resourceViewer) - Utente BigQuery (
roles/bigquery.user) - Amministratore BigQuery (
roles/bigquery.admin)
Per saperne di più sulle autorizzazioni BigQuery, consulta Ruoli e autorizzazioni IAM di BigQuery.
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 della prenotazione fornito dall'utente. |
ignore_idle_slots |
BOOL |
Se impostato su false, qualsiasi query che utilizza questa prenotazione può utilizzare slot inattivi non utilizzati di altri impegni di capacità. |
slot_capacity |
INTEGER |
La capacità degli slot di riferimento della prenotazione. |
target_job_concurrency |
INTEGER |
Il numero target di query che possono essere eseguite contemporaneamente, limitato 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 saperne di più sulle versioni, consulta Introduzione alle versioni di BigQuery. |
primary_location |
STRING |
La località attuale della replica principale della prenotazione. Questo campo viene impostato solo per le prenotazioni che utilizzano la funzionalità di ripristino di emergenza gestito. |
secondary_location |
STRING |
La posizione attuale della replica secondaria della prenotazione. Questo campo viene impostato solo per le prenotazioni che utilizzano la funzionalità di ripristino di emergenza gestito. |
original_primary_location |
STRING |
La località in cui è stata creata originariamente la prenotazione. |
labels |
RECORD |
Array di etichette associate alla prenotazione. |
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]. |
max_slots |
INTEGER |
Il numero massimo di slot che questa prenotazione può utilizzare, inclusi gli slot di riferimento (slot_capacity), gli slot inattivi (se ignore_idle_slots è false) e gli 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à della prenotazione, che determina il modo in cui la prenotazione scala dalla base di riferimento a max_slots. Questo campo viene specificato dagli utenti per utilizzare la funzionalità di prevedibilità delle prenotazioni. |
Per garantire la stabilità, ti consigliamo di elencare esplicitamente le colonne nelle query dello schema di informazioni anziché utilizzare un carattere jolly (SELECT *). L'elenco esplicito delle colonne impedisce l'interruzione delle query se lo schema sottostante cambia.
Ambito e sintassi
Le query su questa vista devono includere un qualificatore della regione. La tabella seguente spiega l'ambito della regione per questa visualizzazione:
| Nome vista | Ambito risorsa | Ambito della 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 specificato, viene utilizzato il progetto predefinito. -
REGION: qualsiasi nome della regione del set di dati. Ad esempio:`region-us`.
Unione delle visualizzazioni delle prenotazioni e dei job
Le viste dei job contengono la colonna
reservation_id. Se il job è stato eseguito in un progetto con una prenotazione assegnata, reservation_id segue questo formato: reservation-admin-project:reservation-location.reservation-name.
Per unire le visualizzazioni delle prenotazioni e quelle dei job, puoi unire la colonna reservation_id delle visualizzazioni dei job e le colonne project_id e reservation_name delle visualizzazioni delle prenotazioni. L'esempio seguente mostra un esempio di utilizzo della clausola JOIN tra le visualizzazioni di prenotazione e job.
Esempio
L'esempio seguente mostra l'utilizzo degli slot, la capacità degli slot e l'assegnazione della prenotazione per un progetto con un'assegnazione della prenotazione nell'ultima ora. L'utilizzo degli slot è espresso in unità di slot millisecondi 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 ottenere 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 le fasce orarie dei job alle informazioni sulla prenotazione.