Visualizzazione PRENOTAZIONI
La visualizzazione 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 attuale. Una prenotazione attuale è una prenotazione che non è stata eliminata. Per saperne di più sulle prenotazioni, consulta
Introduzione alle prenotazioni.
Autorizzazione obbligatoria
Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.RESERVATIONS
, 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
La visualizzazione INFORMATION_SCHEMA.RESERVATIONS
ha lo schema seguente:
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 il valore è false, qualsiasi query che utilizza questa prenotazione può utilizzare gli slot inattivi non utilizzati di altri impegni di capacità. |
slot_capacity |
INTEGER |
Il punto di riferimento della prenotazione. |
target_job_concurrency |
INTEGER |
Il numero target di query che possono essere eseguite contemporaneamente, che è limitato dalle risorse disponibili. Se è 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, vedi Introduzione alle versioni di BigQuery. |
primary_location |
STRING |
La posizione 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. |
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 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 Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito. -
REGION
: qualsiasi nome della regione del set di dati. Ad esempio:`region-us`
.
Unione tra le visualizzazioni delle prenotazioni e quelle dei lavori
Le visualizzazioni dei job contengono la colonna
reservation_id
. Se il job è stato eseguito in un progetto a cui è assegnata una prenotazione, reservation_id
seguirà questo formato:
reservation-admin-project:reservation-location.reservation-name
.
Per unire le visualizzazioni delle prenotazioni e 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 esempio di
utilizzo della clausola JOIN
tra le visualizzazioni della prenotazione e del job.
Esempio
Il seguente esempio 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 degli slot è espresso 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 visualizzazione RESERVATIONS
per ottenere informazioni
sulle prenotazioni. Se le prenotazioni sono cambiate nell'ultima ora, la
colonna reservation_slot_capacity
potrebbe non essere precisa.
La query unisce RESERVATIONS
a
JOBS_TIMELINE
per
associare le sezioni temporali del job alle informazioni sulla prenotazione.