Trabajar con reservas de slots antiguas
La API BigQuery Reservation te permite comprar ranuras dedicadas (llamadas compromisos), crear grupos de ranuras (llamados reservas) y asignar proyectos, carpetas y organizaciones a esas reservas.
Las reservas te permiten asignar un número concreto de ranuras a una carga de trabajo. Por ejemplo, puede que no quieras que una carga de trabajo de producción compita con cargas de trabajo de prueba por las ranuras. Puedes crear una reserva llamada prod y asignar tus cargas de trabajo de producción a esta reserva. Para obtener más información, consulta Reservas.
Crear reservas
Permisos obligatorios
Para crear una reserva, necesitas el siguiente permiso de Gestión de Identidades y Accesos (IAM):
bigquery.reservations.createen el proyecto de administración que mantiene la propiedad de los compromisos.
Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye este permiso:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
Para obtener más información sobre los roles de gestión de identidades y accesos en BigQuery, consulta el artículo sobre roles y permisos predefinidos.
Crear una reserva con slots específicos
Selecciona una de las opciones siguientes:
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el menú de navegación, haz clic en Gestión de la capacidad.
Haz clic en Crear reserva.
En el campo Nombre de la reserva, introduce un nombre para la reserva.
En la lista desplegable Ubicación, selecciona la ubicación.
En la sección Modelo de capacidad, seleccione el modelo de capacidad.
Si seleccionas la opción Tarifa plana, en Ranuras de referencia, introduce el número de ranuras de la reserva.
- En la lista Selector de tamaño máximo de reserva, selecciona el tamaño máximo de reserva.
Opcional: En el campo Espacios publicitarios de referencia, introduce el número de espacios publicitarios de referencia de la reserva. Para usar solo la capacidad de espacio especificada, haz clic en el botón Ignorar espacios inactivos.
La cantidad de ranuras de escalado automático disponibles se determina restando el valor de las ranuras de referencia del valor del tamaño máximo de la reserva. Por ejemplo, si creas una reserva con 100 espacios de base y un tamaño máximo de reserva de 400, tu reserva tendrá 300 espacios de escalado automático. Para obtener más información sobre los intervalos de referencia, consulta el artículo Usar reservas con intervalos de referencia y de autoescalado.
Para inhabilitar la función para compartir espacios libres, haz clic en el interruptor Ignorar espacios libres.
El desglose de los espacios se muestra en la tabla Estimación de costes. En la tabla Resumen de capacidad se muestra un resumen de la reserva.
Haz clic en Guardar.
La nueva reserva se muestra en la pestaña Reservas.
SQL
Para crear una reserva, usa la declaración de DDL CREATE RESERVATION.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
CREATE RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, );
Haz los cambios siguientes:
ADMIN_PROJECT_ID: el ID de proyecto del proyecto de administración que posee el recurso de reservaLOCATION: la ubicación de la reserva. Si seleccionas una ubicación de BigQuery Omni, la opción de edición se limitará a la edición Enterprise.RESERVATION_NAME: el nombre de la reservaDebe empezar y acabar con una letra minúscula o un número, y solo puede contener letras minúsculas, números y guiones.
NUMBER_OF_BASELINE_SLOTS: número de espacios de referencia que se asignarán a la reserva. No puedes definir las opcionesslot_capacityyeditionen la misma reserva.EDITION: la edición de la reserva. Al asignar una reserva a una edición, se producen cambios en las funciones y los precios. Para obtener más información, consulta Introducción a las ediciones de BigQuery.NUMBER_OF_AUTOSCALING_SLOTS: número de ranuras de autoescalado asignadas a la reserva. Es igual al valor del tamaño máximo de la reserva menos el número de espacios publicitarios de referencia.
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Para crear una reserva, usa el comando bq mk con la marca --reservation:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation \
--slots=NUMBER_OF_BASELINE_SLOTS \
--ignore_idle_slots=false \
RESERVATION_NAME
Haz los cambios siguientes:
ADMIN_PROJECT_ID: el ID del proyectoLOCATION: la ubicación de la reserva. Si seleccionas una ubicación de BigQuery Omni, tu opción de edición se limitará a la edición Enterprise.NUMBER_OF_BASELINE_SLOTS: número de espacios publicitarios básicos que se asignarán a la reserva.RESERVATION_NAME: el nombre de la reservaEDITION: la edición de la reserva. Al asignar una reserva a una edición, se producen cambios en las funciones y los precios. Para obtener más información, consulta Introducción a las ediciones de BigQuery.NUMBER_OF_AUTOSCALING_SLOTS: número de ranuras de autoescalado asignadas a la reserva. Es igual al valor del tamaño máximo de la reserva menos el número de espacios publicitarios de referencia.
Para obtener información sobre la marca --ignore_idle_slots, consulta la sección Ranuras inactivas. El valor predeterminado es false.
Python
Actualizar reservas
Puedes hacer los siguientes cambios en una reserva:
- Cambia el tamaño de la reserva añadiendo o quitando espacios.
- Configura si las consultas de esta reserva usan ranuras inactivas.
- Cambiar la cantidad de ranuras de referencia o de autoescalado asignadas a una reserva.
Permisos obligatorios
Para actualizar una reserva, necesitas el siguiente permiso de gestión de identidades y accesos (IAM):
bigquery.reservations.updateen el proyecto de administración que mantiene la propiedad de los compromisos.
Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye este permiso:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
Para obtener más información sobre los roles de gestión de identidades y accesos en BigQuery, consulta el artículo sobre roles y permisos predefinidos.
Cambiar el tamaño de una reserva
Puedes añadir o quitar franjas horarias de una reserva.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el menú de navegación, haz clic en Gestión de la capacidad.
Haz clic en la pestaña Reservas.
Busca la reserva que quieras modificar.
Abre la opción Acciones.
Haz clic en Editar.
En el cuadro de diálogo Selector de tamaño máximo de reserva, introduce el tamaño máximo de reserva.
En el campo Ranuras de referencia, introduce el número de ranuras de referencia.
Haz clic en Guardar.
SQL
Para cambiar el tamaño de una reserva, usa la ALTER RESERVATION SET OPTIONSdeclaración del lenguaje de definición de datos (DDL).
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
ALTER RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` SET OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, );
Haz los cambios siguientes:
ADMIN_PROJECT_ID: el ID de proyecto del proyecto de administración que posee el recurso de reservaLOCATION: la ubicación de la reserva, por ejemplo,europe-west9.RESERVATION_NAME: el nombre de la reserva. Debe empezar y acabar con una letra minúscula o un número, y solo puede contener letras minúsculas, números y guiones.NUMBER_OF_BASELINE_SLOTS: número de espacios de referencia que se asignarán a la reserva.
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Para actualizar el tamaño de una reserva, usa el comando bq update con la marca --reservation:
bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--slots=NUMBER_OF_BASELINE_SLOTS \
--reservation RESERVATION_NAME
Haz los cambios siguientes:
ADMIN_PROJECT_ID: el ID del proyectoLOCATION: la ubicación de la reservaNUMBER_OF_BASELINE_SLOTS: número de espacios publicitarios básicos que se asignarán a la reserva.RESERVATION_NAME: el nombre de la reserva
Python
Configurar si las consultas usan ranuras inactivas
La marca --ignore_idle_slots controla si las consultas que se ejecutan en una reserva pueden usar las ranuras inactivas de otras reservas. Para obtener más información, consulta la sección Ranuras inactivas. Puedes actualizar esta configuración en una reserva que ya tengas.
Para actualizar una reserva, usa el comando bq update con la marca --reservation . En el siguiente ejemplo se asigna true a --ignore_idle_slots,
lo que significa que la reserva solo usará los espacios asignados a la reserva.
bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--ignore_idle_slots=true \
--reservation RESERVATION_NAME
Haz los cambios siguientes:
ADMIN_PROJECT_ID: el ID del proyectoLOCATION: la ubicación de la reservaRESERVATION_NAME: el nombre de la reserva
Mostrar la configuración de espacios inactivos
Para consultar el ajuste Espacios inactivos de una reserva, sigue estos pasos:
SQL
Consulta la columna ignore_idle_slots de la vista INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
SELECT reservation_name, ignore_idle_slots FROM `ADMIN_PROJECT_ID.region-LOCATION`.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT;
Haz los cambios siguientes:
ADMIN_PROJECT_ID: el ID del proyecto de administración que posee los recursos de reservaLOCATION: la ubicación de las reservas
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Usa el comando bq ls con la marca --reservation:
bq ls --reservation \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION
Haz los cambios siguientes:
ADMIN_PROJECT_ID: el ID del proyecto de administración que posee los recursos de reservaLOCATION: la ubicación de las reservas
El campo ignoreIdleSlots contiene el ajuste de configuración.
Eliminar reservas
Cuando eliminas una reserva, las tareas que se estén ejecutando con los slots de esa reserva fallarán. Para evitar errores, permite que los trabajos en curso se completen antes de eliminar la reserva.
Permisos obligatorios
Para eliminar una reserva, necesita el siguiente permiso de gestión de identidades y accesos (IAM):
bigquery.reservations.deleteen el proyecto de administración que mantiene la propiedad de los compromisos.
Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye este permiso:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
Para obtener más información sobre los roles de gestión de identidades y accesos en BigQuery, consulta el artículo sobre roles y permisos predefinidos.
Eliminar una reserva
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el menú de navegación, haz clic en Gestión de la capacidad.
Haz clic en la pestaña Reservas.
Busca la reserva que quieras eliminar.
Abre la opción Acciones.
Haz clic en Eliminar.
En el cuadro de diálogo Eliminar reserva, haz clic en Eliminar.
SQL
Para eliminar una reserva, utiliza la declaración de DDL DROP RESERVATION.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
DROP RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`;
Haz los cambios siguientes:
ADMIN_PROJECT_ID: el ID de proyecto del proyecto de administración que posee el recurso de reservaLOCATION: la ubicación de la reservaRESERVATION_NAME: el ID de la reserva
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Para eliminar una reserva, usa el comando bq rm con la marca --reservation:
bq rm \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation RESERVATION_NAME
Haz los cambios siguientes:
ADMIN_PROJECT_ID: el ID del proyecto de administración que tiene el recurso de reserva.LOCATION: la ubicación de la reservaRESERVATION_NAME: el nombre de la reserva
Python
Añadir la API de reserva de BigQuery a Controles de Servicio de VPC
.La API de reserva de BigQuery es compatible con Controles de Servicio de VPC. Para integrar la API BigQuery Reservation con Controles de Servicio de VPC, sigue las instrucciones de Crear un perímetro de servicio y añade la API BigQuery Reservation a los servicios protegidos.
Un perímetro de servicio protege el acceso a las reservas, los compromisos y las asignaciones de los proyectos de administración especificados en el perímetro. Cuando se crea una asignación, Controles de Servicio de VPC protege el proyecto de administración y el proyecto, la carpeta y la organización del asignado.