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 in corso è una prenotazione che non è stata eliminata. Per ulteriori informazioni sulle prenotazioni, consulta Introduzione alle prenotazioni.

Autorizzazione obbligatoria

Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.RESERVATIONS, devi disporre dell'autorizzazione bigquery.reservations.list Identity and Access Management (IAM) per il 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 della prenotazione fornito dall'utente.
ignore_idle_slots BOOL Se false, qualsiasi query che utilizza questa prenotazione può utilizzare gli slot inattivi non utilizzati da altri impegni di capacità.
slot_capacity INTEGER Valore 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:

  • current_slots: il numero di slot aggiunti alla prenotazione tramite la scalabilità automatica.
  • max_slots: il numero massimo di slot che possono essere aggiunti alla prenotazione tramite la scalabilità automatica.
edition STRING La versione associata a questa prenotazione. Per ulteriori informazioni sulle versioni, consulta Introduzione alle versioni di BigQuery.
primaryLocation STRING La posizione attuale della replica principale della prenotazione. Questo campo viene impostato solo per le prenotazioni che utilizzano la funzionalità di disaster recovery gestito.
secondaryLocation STRING La posizione attuale della replica secondaria della prenotazione. Questo campo viene impostato solo per le prenotazioni che utilizzano la funzionalità di disaster recovery gestito.
originalPrimaryLocation STRING La località in cui è stata creata originariamente la prenotazione.
labels RECORD Array di etichette associate alla prenotazione.

Ambito e sintassi

Le query su questa visualizzazione 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 per questa visualizzazione:

Nome vista Ambito risorsa Ambito regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_BY_PROJECT] Livello progetto REGION
Sostituisci quanto segue:
  • (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`.

Unioni tra le visualizzazioni delle prenotazioni e quelle dei job

Le visualizzazioni job contengono la colonnareservation_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 le istantanee temporali del job alle informazioni sulla prenotazione.