Trabajar con reservas de slots

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):

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye este permiso:

  • BigQuery Resource Editor
  • BigQuery Resource Admin

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

  1. En la Cloud de Confiance consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el menú de navegación, haz clic en Gestión de la capacidad.

  3. Haz clic en Crear reserva.

  4. En el campo Nombre de la reserva, introduce un nombre para la reserva.

  5. En la lista Ubicación, selecciona la ubicación. Si seleccionas una ubicación de BigQuery Omni, tu opción de edición se limitará a la edición Enterprise.

  6. En la lista Edición, selecciona la edición. Las funciones de la edición de BigQuery, como el escalado automático, solo están disponibles en una edición. Para obtener más información, consulta la introducción a las ediciones de BigQuery.

  7. En la lista Selector de tamaño máximo de reserva, selecciona el tamaño máximo de reserva.

  8. Opcional: En el campo Espacios publicitarios de referencia, introduce el número de espacios publicitarios de referencia de la reserva.

    El número de ranuras de autoescalado disponibles se determina restando el valor de Ranuras base del valor de Tamaño máximo de 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.

  9. Para inhabilitar la función de compartir espacios inactivos y usar solo la capacidad de espacio especificada, haga clic en el interruptor Ignorar espacios inactivos.

  10. Para desplegar la sección Configuración avanzada, haz clic en la flecha de expansión.

  11. Opcional: Para definir la simultaneidad de trabajos objetivo, activa el interruptor Anular la simultaneidad de trabajos objetivo automática e introduce la simultaneidad de trabajos objetivo.

  12. 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.

  13. Haz clic en Guardar.

La nueva reserva se muestra en la pestaña Reservas de espacios.

SQL

Para crear una reserva, usa la declaración de DDL CREATE RESERVATION.

  1. En la Cloud de Confiance consola, ve a la página BigQuery.

    Ir a BigQuery

  2. 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,
      edition = EDITION,
      autoscale_max_slots = NUMBER_OF_AUTOSCALING_SLOTS);

    Haz los cambios siguientes:

    • ADMIN_PROJECT_ID: el ID del proyecto de administración que posee el recurso de reserva
    • LOCATION: 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 reserva

      El nombre solo puede contener caracteres alfanuméricos en minúscula o guiones, debe empezar por una letra y no puede terminar con un guion. Además, puede tener 64 caracteres como máximo.

    • NUMBER_OF_BASELINE_SLOTS: número de referencia de los espacios que se van a asignar a la reserva. No puedes definir las opciones slot_capacity y edition en 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.

  3. 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 \
    --edition=EDITION \
    --autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS \
    --max_slots=MAXIMUM_NUMBER_OF_SLOTS
    --scaling_mode=SCALING_MODE
    RESERVATION_NAME

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: el ID del proyecto
  • LOCATION: 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 reserva. El nombre solo puede contener caracteres alfanuméricos en minúscula o guiones, debe empezar por una letra y no puede terminar con un guion. Además, puede tener 64 caracteres como máximo.

  • 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. No se puede configurar con las marcas --max_slots ni --scaling_mode.

  • MAXIMUM_NUMBER_OF_SLOTS: número máximo de ranuras que puede consumir la reserva. Este valor debe configurarse con la marca --scaling_mode (Vista previa).

  • SCALING_MODE: el modo de escalado de la reserva. Las opciones son ALL_SLOTS, IDLE_SLOTS_ONLY o AUTOSCALE_ONLY. Este valor debe configurarse con la marca --scaling_mode (Vista previa).

Para obtener información sobre la marca --ignore_idle_slots, consulta la sección Ranuras inactivas. El valor predeterminado es false.

Terraform

Usa el recurso google_bigquery_reservation.

.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar la autenticación para bibliotecas de cliente.

En el siguiente ejemplo se crea una reserva llamada my-reservation:

resource "google_bigquery_reservation" "default" {
  name              = "my-reservation"
  location          = "us-central1"
  slot_capacity     = 100
  edition           = "ENTERPRISE"
  ignore_idle_slots = false # Use idle slots from other reservations
  concurrency       = 0     # Automatically adjust query concurrency based on available resources
  autoscale {
    max_slots = 200 # Allow the reservation to scale up to 300 slots (slot_capacity + max_slots) if needed
  }
}

Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Cloud de Confiance

Preparar Cloud Shell

  1. Abre Cloud Shell.
  2. Define el Cloud de Confiance proyecto predeterminado en el que quieras aplicar tus configuraciones de Terraform.

    Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.

Preparar el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión .tf. Por ejemplo, main.tf. En este tutorial, nos referiremos al archivo como main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.

    Copia el código de ejemplo en el archivo main.tf que acabas de crear.

    También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.

  3. Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
    terraform init

    Si quieres usar la versión más reciente del proveedor de Google, incluye la opción -upgrade:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
    terraform plan

    Haga las correcciones necesarias en la configuración.

  2. Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply

    Espera hasta que Terraform muestre el mensaje "Apply complete!".

  3. Abre tu Cloud de Confiance proyecto para ver los resultados. En la Cloud de Confiance consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.

Python

Instala el paquete google-cloud-bigquery-reservation antes de usar este código de ejemplo. Crea un ReservationServiceClient. Describe la reserva que quieres crear con una Reservation. Crea la reserva con el método create_reservation.
# TODO(developer): Set project_id to the project ID containing the
# reservation.
project_id = "your-project-id"

# TODO(developer): Set location to the location of the reservation.
# See: https://cloud.google.com/bigquery/docs/locations for a list of
# available locations.
location = "US"

# TODO(developer): Set reservation_id to a unique ID of the reservation.
reservation_id = "sample-reservation"

# TODO(developer): Set slot_capicity to the number of slots in the
# reservation.
slot_capacity = 100

# TODO(developer): Choose a transport to use. Either 'grpc' or 'rest'
transport = "grpc"

# ...

from google.cloud.bigquery_reservation_v1.services import reservation_service
from google.cloud.bigquery_reservation_v1.types import (
    reservation as reservation_types,
)

reservation_client = reservation_service.ReservationServiceClient(
    transport=transport
)

parent = reservation_client.common_location_path(project_id, location)

reservation = reservation_types.Reservation(slot_capacity=slot_capacity)
reservation = reservation_client.create_reservation(
    parent=parent,
    reservation=reservation,
    reservation_id=reservation_id,
)

print(f"Created reservation: {reservation.name}")

Crear una reserva predecible

Antes de crear una reserva con un número máximo de espacios, debes habilitar la equidad basada en reservas.

Habilitar la equidad basada en reservas

Para habilitar la equidad basada en reservas, asigna el valor true a la enable_reservation_based_fairness marca.

Para actualizar la equidad basada en reservas de un proyecto, necesitas el permiso bigquery.config.update en el proyecto que mantiene la propiedad de las reservas. El rol predefinido BigQuery Admin incluye este permiso.

Para obtener más información sobre cómo actualizar la configuración predeterminada de un proyecto, consulta Gestionar ajustes de configuración.

ALTER PROJECT `PROJECT_NAME` SET OPTIONS (
    `region-LOCATION.enable_reservation_based_fairness`= true);

Haz los cambios siguientes:

Crear una reserva predecible

Para crear una reserva predecible con un número máximo de ranuras, selecciona una de las siguientes opciones:

Consola

  1. En la Cloud de Confiance consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de navegación, vaya a la sección Gestión de la capacidad y, a continuación, haga clic en Crear reserva.

  3. En el campo Nombre de la reserva, introduce un nombre para la reserva.

  4. En la lista Ubicación, selecciona la ubicación. Si seleccionas una ubicación de BigQuery Omni, tu opción de edición se limitará a la edición Enterprise.

  5. En la lista Edición, selecciona la edición. El autoescalado solo está disponible en una edición. Para obtener más información, consulta Información sobre las ediciones de BigQuery.

  6. En la lista Selector de tamaño máximo de reserva, selecciona el tamaño máximo de reserva.

  7. Opcional: En el campo Espacios publicitarios de referencia, introduce el número de espacios publicitarios de referencia de la reserva.

    El número de ranuras de autoescalado disponibles se determina restando el valor de Ranuras base del valor de Tamaño máximo de 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.

  8. Para inhabilitar la función de compartir espacios inactivos y usar solo la capacidad de espacio especificada, haga clic en el interruptor Ignorar espacios inactivos.

  9. Para desplegar la sección Configuración avanzada, haz clic en la flecha de expansión.

    1. En la lista ¿Cómo se usan los espacios inactivos?, selecciona la opción de configuración.
  10. 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.

  11. Haz clic en Guardar.

La nueva reserva se muestra en la pestaña Reservas de espacios.

bq

Para crear una reserva predecible, usa el comando bq mk con la marca --reservation y define los valores de max_slots y scaling_mode:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation \
    --slots=NUMBER_OF_BASELINE_SLOTS \
    --ignore_idle_slots=false \
    --edition=EDITION \
    --max_slots=MAXIMUM_NUMBER_OF_SLOTS \
    --scaling_mode=SCALING_MODE
    RESERVATION_NAME

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: el ID del proyecto
  • LOCATION: 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 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.

  • MAXIMUM_NUMBER_OF_SLOTS: número máximo de ranuras que puede consumir la reserva. Este valor debe configurarse con la marca --scaling_mode.

  • SCALING_MODE: SCALING_MODE: el modo de escalado de la reserva. Las opciones son ALL_SLOTS, IDLE_SLOTS_ONLY o AUTOSCALE_ONLY. Este valor debe configurarse con la marca max_slots. Este valor debe estar alineado con la marca ignore_idle_slots. Para obtener más información, consulta Predictibilidad de las reservas.

Para obtener información sobre la marca --ignore_idle_slots, consulta la sección Ranuras inactivas. El valor predeterminado es false.

SQL

Para crear una reserva predecible, usa la declaración de DDL CREATE RESERVATION.

  1. En la Cloud de Confiance consola, ve a la página BigQuery.

    Ir a BigQuery

  2. 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,
      edition = EDITION,
      ignore_idle_slots=IGNORE_IDLE_SLOTS
      max_slots = MAX_NUMBER_OF_SLOTS,
      scaling_mode = SCALING_MODE);

    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 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 reserva. El nombre solo puede contener caracteres alfanuméricos en minúscula o guiones, debe empezar por una letra y no puede terminar con un guion. La longitud máxima es de 64 caracteres.

    • NUMBER_OF_BASELINE_SLOTS: número de referencia de los espacios que se van a asignar a la reserva. No puedes definir las opciones slot_capacity y edition en 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.
    • IGNORE_IDLE_SLOTS: si la reserva usa horas disponibles o no. El valor predeterminado es false.
    • MAX_NUMBER_OF_SLOTS: número máximo de ranuras que puede consumir la reserva. Este valor debe configurarse con la opción scaling_mode.
    • SCALING_MODE: el modo de escalado de la reserva. Las opciones son ALL_SLOTS, IDLE_SLOTS_ONLY o AUTOSCALE_ONLY. Este valor debe configurarse con la opción max_slots. Este valor debe estar alineado con la opción ignore_idle_slots. Para obtener más información, consulta Predictibilidad de las reservas.

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

Para obtener más información sobre las reservas predecibles, consulta el artículo Reservas predecibles.

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.
  • Define la simultaneidad de tareas de destino.

Para cambiar la edición de una reserva, primero elimina la reserva y, después, crea una reserva con la edición actualizada.

Permisos obligatorios

Para actualizar una reserva, necesitas el siguiente permiso de gestión de identidades y accesos (IAM):

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye este permiso:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery 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

  1. En la Cloud de Confiance consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el menú de navegación, haz clic en Gestión de la capacidad.

  3. Haz clic en la pestaña Reservas de espacios.

  4. Busca la reserva que quieras modificar.

  5. Abre la opción Acciones.

  6. Haz clic en Editar.

  7. En el cuadro de diálogo Selector de tamaño máximo de reserva, introduce el tamaño máximo de reserva.

  8. En el campo Ranuras de referencia, introduce el número de ranuras de referencia.

  9. Para desplegar la sección Configuración avanzada, haz clic en la flecha de expansión.

  10. Opcional: Para definir la simultaneidad de trabajos objetivo, activa el interruptor Anular la simultaneidad de trabajos objetivo automática e introduce la simultaneidad de trabajos objetivo.

  11. 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).

  1. En la Cloud de Confiance consola, ve a la página BigQuery.

    Ir a BigQuery

  2. 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,
      autoscale_max_slots = NUMBER_OF_AUTOSCALING_SLOTS);

    Haz los cambios siguientes:

    • ADMIN_PROJECT_ID: el ID del proyecto de administración que posee el recurso de reserva
    • LOCATION: la ubicación de la reserva, por ejemplo, europe-west9.
    • RESERVATION_NAME: el nombre de la reserva. El nombre solo puede contener caracteres alfanuméricos en minúscula o guiones, debe empezar por una letra y no puede terminar con un guion. Además, puede tener 64 caracteres como máximo.

    • NUMBER_OF_BASELINE_SLOTS: número de espacios de referencia que se asignarán a la reserva.
    • 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.

  3. 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 \
    --autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS \
    --reservation RESERVATION_NAME

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: el ID del proyecto
  • LOCATION: la ubicación de la reserva
  • NUMBER_OF_BASELINE_SLOTS: número de espacios publicitarios básicos que se asignarán a la reserva.
  • RESERVATION_NAME: el nombre de la reserva. El nombre solo puede contener caracteres alfanuméricos en minúscula o guiones, debe empezar por una letra y no puede terminar con un guion. Además, puede tener 64 caracteres como máximo.
  • 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.

Python

Instala el paquete google-cloud-bigquery-reservation antes de usar este código de ejemplo. Crea un ReservationServiceClient. Describe las propiedades actualizadas con un Reservation y la propiedad FieldMask.paths. Actualiza la reserva con el método update_reservation.
# TODO(developer): Set project_id to the project ID containing the
# reservation.
project_id = "your-project-id"

# TODO(developer): Set location to the location of the reservation.
# See: https://cloud.google.com/bigquery/docs/locations for a list of
# available locations.
location = "US"

# TODO(developer): Set reservation_id to a unique ID of the reservation.
reservation_id = "sample-reservation"

# TODO(developer): Set slot_capicity to the new number of slots in the
# reservation.
slot_capacity = 50

# TODO(developer): Choose a transport to use. Either 'grpc' or 'rest'
transport = "grpc"

# ...

from google.cloud.bigquery_reservation_v1.services import reservation_service
from google.cloud.bigquery_reservation_v1.types import (
    reservation as reservation_types,
)
from google.protobuf import field_mask_pb2

reservation_client = reservation_service.ReservationServiceClient(
    transport=transport
)

reservation_name = reservation_client.reservation_path(
    project_id, location, reservation_id
)
reservation = reservation_types.Reservation(
    name=reservation_name,
    slot_capacity=slot_capacity,
)
field_mask = field_mask_pb2.FieldMask(paths=["slot_capacity"])
reservation = reservation_client.update_reservation(
    reservation=reservation, update_mask=field_mask
)

print(f"Updated reservation: {reservation.name}")
print(f"\tslot_capacity: {reservation.slot_capacity}")

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 proyecto
  • LOCATION: la ubicación de la reserva
  • RESERVATION_NAME: el nombre de la reserva. El nombre solo puede contener caracteres alfanuméricos en minúscula o guiones, debe empezar por una letra y no puede terminar con un guion. Además, puede tener 64 caracteres como máximo.

Mostrar la configuración de los 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.

  1. En la Cloud de Confiance consola, ve a la página BigQuery.

    Ir a BigQuery

  2. 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 reserva.
    • LOCATION: la ubicación de las reservas

  3. 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 reserva
  • LOCATION: la ubicación de las reservas

El campo ignoreIdleSlots contiene el ajuste de configuración.

Eliminar reservas

Si eliminas una reserva, fallarán todas las tareas en curso que utilicen ranuras de esa reserva. Para evitar errores, deja que se completen los trabajos en ejecución antes de eliminar la reserva.

Permisos obligatorios

Para eliminar una reserva, necesita el siguiente permiso de gestión de identidades y accesos (IAM):

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye este permiso:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery 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

  1. En la Cloud de Confiance consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el menú de navegación, haz clic en Gestión de la capacidad.

  3. Haz clic en la pestaña Reservas.

  4. Busca la reserva que quieras eliminar.

  5. Abre la opción Acciones.

  6. Haz clic en Eliminar.

  7. 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.

  1. En la Cloud de Confiance consola, ve a la página BigQuery.

    Ir a BigQuery

  2. 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 del proyecto de administración que posee el recurso de reserva
    • LOCATION: la ubicación de la reserva
    • RESERVATION_NAME: el ID de la reserva

  3. 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 posee el recurso de reserva
  • LOCATION: la ubicación de la reserva
  • RESERVATION_NAME: el nombre de la reserva. El nombre solo puede contener caracteres alfanuméricos en minúscula o guiones, debe empezar por una letra y no puede terminar con un guion. Además, puede tener 64 caracteres como máximo.

Python

Instala el paquete google-cloud-bigquery-reservation antes de usar este código de ejemplo. Crea un ReservationServiceClient. Elimina la reserva con el método delete_reservation.
# TODO(developer): Set project_id to the project ID containing the
# reservation.
project_id = "your-project-id"

# TODO(developer): Set location to the location of the reservation.
# See: https://cloud.google.com/bigquery/docs/locations for a list of
# available locations.
location = "US"

# TODO(developer): Set reservation_id to a unique ID of the reservation.
reservation_id = "sample-reservation"

# TODO(developer): Choose a transport to use. Either 'grpc' or 'rest'
transport = "grpc"

# ...

from google.cloud.bigquery_reservation_v1.services import reservation_service

reservation_client = reservation_service.ReservationServiceClient(
    transport=transport
)
reservation_name = reservation_client.reservation_path(
    project_id, location, reservation_id
)
reservation_client.delete_reservation(name=reservation_name)

print(f"Deleted reservation: {reservation_name}")

Controlar el acceso a las reservas

Puedes controlar qué usuarios tienen acceso a determinadas reservas. Para que un usuario pueda anular una reserva en su consulta, debe tener el permiso reservations.use en esa reserva.

Permisos obligatorios

Para obtener el permiso que necesitas para especificar una reserva concreta para tu trabajo, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Editor de recursos (roles/bigquery.resourceEditor) en el recurso de reserva. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso reservations.use , que es necesario para especificar una reserva concreta para tu trabajo.

También puedes obtener este permiso con roles personalizados u otros roles predefinidos.

Controlar el acceso a una reserva

Para gestionar el acceso a un recurso de reserva específico, usa el comando bq set-iam-policy.

Para gestionar el acceso a varios recursos de reserva, usa la Cloud de Confiance consola para asignar el rol Editor de recursos de BigQuery en el proyecto, la carpeta o la organización. Cuando asignes el rol, usa una condición de gestión de identidades y accesos para permitir el acceso a los recursos de reserva cuando se cumplan las condiciones especificadas.

Para controlar el acceso a las reservas, haz una de las siguientes acciones:

Consola

En la Cloud de Confiance consola, puedes permitir el acceso a varios recursos de reserva mediante una condición.

  1. En la consola de Cloud de Confiance , ve a la página Gestión de identidades y accesos.

    Ir a Gestión de identidades y accesos

  2. Selecciona un proyecto, una carpeta o una organización.

  3. Para asignar el rol bigquery.resourceEditor a una entidad principal que tenga un rol en los recursos de la reserva, sigue estos pasos:

    1. En la pestaña Ver por centros educativos, ve al centro educativo correspondiente o usa la opción Filtrar para encontrarlo.

    2. Haz clic en Editar principal.

    3. En la página Asignar roles, haz clic en Añadir roles.

    4. En el campo Buscar roles, introduce bigquery.resourceEditor.

    5. Marca la opción Editor de recursos de BigQuery en los resultados de búsqueda y, a continuación, haz clic en Aplicar.

    6. Haz clic en Guardar.

  4. También puede conceder el rol bigquery.resourceEditor a una entidad principal que no tenga ningún rol en los recursos de reserva:

    1. Haz clic en Conceder acceso.

    2. En la página Añadir principales, en el campo Nuevos principales, introduce el identificador del principal (por ejemplo, //iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com).

    3. Haz clic en Añadir roles.

    4. En el campo Buscar roles, introduce bigquery.resourceEditor.

    5. Marca la opción Editor de recursos de BigQuery en los resultados de búsqueda y, a continuación, haz clic en Aplicar.

    6. En el cuadro Editor de recursos de BigQuery, haz clic en Añadir condición.

    7. En la página Añadir condición, haga lo siguiente:

      1. Introduce valores en los campos Título y Descripción.

      2. En el Creador de condiciones, añade la condición. Por ejemplo, para añadir una condición que asigne el rol a todos los nombres de reserva que terminen en /reservation1, en Tipo de condición, elige Nombre; en Operador, elige Termina en; y en Valor, introduce /reservation1.

      3. Haz clic en Guardar.

  5. Haz clic en Guardar.

bq

En la herramienta de línea de comandos bq, puedes conceder acceso a un recurso de reserva concreto.

Para conceder acceso a una reserva, usa el comando bq set-iam-policy:

bq set-iam-policy RESOURCE FILE_NAME

Haz los cambios siguientes:

  • RESOURCE: el nombre del recurso de reserva. Por ejemplo, projects/project1/locations/US/reservations/reservation1.
  • FILE_NAME: el archivo que contiene la política en formato JSON. El formato debe seguir la estructura de las políticas de gestión de identidades y accesos de las políticas de permiso. Por ejemplo:

    {
      "bindings": [
        {
          "members": [
            "user:my-user@example.com"
          ],
          "role": "roles/bigquery.resourceEditor"
        }
      ],
      "etag": "BwUjMhCsNvY=",
      "version": 1
    }

Para obtener más información sobre IAM, consulta Gestionar el acceso a otros recursos.