Vista RESERVAS
La vista INFORMATION_SCHEMA.RESERVATIONS
contiene una lista casi en tiempo real de todas las reservas actuales del proyecto de administración. Cada fila representa una reserva actual. Una reserva actual es una reserva que no se ha eliminado. Para obtener más información sobre las reservas, consulta el artículo Introducción a las reservas.
Permiso obligatorio
Para consultar la vista INFORMATION_SCHEMA.RESERVATIONS
, necesitas el permiso bigquery.reservations.list
de gestión de identidades y accesos (IAM) en el proyecto.
Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye el permiso necesario:
- Administrador de recursos de BigQuery (
roles/bigquery.resourceAdmin
) - Editor de recursos de BigQuery (
roles/bigquery.resourceEditor
) - Lector de recursos de BigQuery (
roles/bigquery.resourceViewer
) - Usuario de BigQuery (
roles/bigquery.user
) - Administrador de BigQuery (
roles/bigquery.admin
)
Para obtener más información sobre los permisos de BigQuery, consulta el artículo sobre los roles y permisos de gestión de identidades y accesos de BigQuery.
Esquema
La vista INFORMATION_SCHEMA.RESERVATIONS
tiene el siguiente esquema:
Nombre de la columna | Tipo de datos | Valor |
---|---|---|
ddl |
STRING |
La instrucción DDL utilizada para crear esta reserva. |
project_id |
STRING |
ID del proyecto de administración. |
project_number |
INTEGER |
Número del proyecto de administración. |
reservation_name |
STRING |
Nombre de la reserva proporcionado por el usuario. |
ignore_idle_slots |
BOOL |
Si es false, cualquier consulta que use esta reserva puede usar las ranuras inactivas sin usar de otros compromisos de capacidad. |
slot_capacity |
INTEGER |
Valor de referencia de la reserva. |
target_job_concurrency |
INTEGER |
El número objetivo de consultas que se pueden ejecutar simultáneamente, que está limitado por los recursos disponibles. Si es cero, este valor se calcula automáticamente en función de los recursos disponibles. |
autoscale |
STRUCT |
Información sobre la capacidad de escalado automático de la reserva. Los campos incluyen lo siguiente:
|
edition |
STRING |
La edición asociada a esta reserva. Para obtener más información sobre las ediciones, consulta Introducción a las ediciones de BigQuery. |
primary_location |
STRING |
Ubicación actual de la réplica principal de la reserva. Este campo solo se define en las reservas que usan la función de recuperación ante desastres gestionada. |
secondary_location |
STRING |
Ubicación actual de la réplica secundaria de la reserva. Este campo solo se define en las reservas que usan la función de recuperación ante desastres gestionada. |
original_primary_location |
STRING |
Ubicación en la que se creó originalmente la reserva. |
labels |
RECORD |
Matriz de etiquetas asociadas a la reserva. |
max_slots |
INTEGER |
El número máximo de ranuras que puede usar esta reserva, incluidas las ranuras de base (slot_capacity ), las ranuras inactivas (si ignore_idle_slots es false) y las ranuras de escalado automático. Los usuarios especifican este campo para usar la función de previsibilidad de reservas. |
scaling_mode |
STRING |
El modo de escalado de la reserva, que determina cómo se escala la reserva desde la línea de base hasta max_slots . Los usuarios especifican este campo para usar la función de previsibilidad de reservas. |
Ámbito y sintaxis
Las consultas en esta vista deben incluir un calificador de región. Si no especifica un calificador regional, los metadatos se recuperan de todas las regiones. En la siguiente tabla se explica el ámbito de la región de esta vista:
Nombre de la vista | Ámbito de los recursos | Ámbito de la región |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_BY_PROJECT] |
Nivel de proyecto | REGION |
-
Opcional:
PROJECT_ID
: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado. -
REGION
: cualquier nombre de región del conjunto de datos. Por ejemplo,`region-us`
.
Unión entre las vistas de reserva y las de trabajo
Las vistas de tareas contienen la columna
reservation_id
. Si tu trabajo se ejecutó en un proyecto al que se le asignó una reserva, reservation_id
seguiría este formato:
reservation-admin-project:reservation-location.reservation-name
.
Para combinar las vistas de reserva y de tarea, puedes combinar la columna de vistas de tarea reservation_id
con las columnas de vistas de reserva project_id
y reservation_name
. En el siguiente ejemplo se muestra cómo usar la cláusula JOIN
entre las vistas de reserva y de trabajo.
Ejemplo
En el siguiente ejemplo se muestra el uso de las ranuras, la capacidad de las ranuras y la reserva asignada de un proyecto con una asignación de reserva durante la última hora. El uso de los slots se indica en unidades de milisegundos de slot por segundo.
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));
El resultado debería ser similar al siguiente:
+------------------+---------------------+---------------+----------------+------------------+----------+
| 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 |
Esta consulta usa la vista RESERVATIONS
para obtener información sobre las reservas. Si las reservas han cambiado en la última hora, es posible que la columna reservation_slot_capacity
no sea precisa.
La consulta combina RESERVATIONS
con JOBS_TIMELINE
para asociar los intervalos de tiempo del trabajo con la información de la reserva.