Trabajar con asignaciones de reservas

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.

Crear asignaciones de reserva

Para usar los espacios que compres, crea una asignación que asigne un proyecto, una carpeta o una organización a una reserva de espacio. No puedes asignar ni distribuir un número específico de espacios a nivel de asignación. Los espacios se gestionan y se asignan a nivel de reserva.

Los proyectos usan la reserva más específica de la jerarquía de recursos a la que están asignados. Una asignación de carpeta anula una asignación de organización, y una asignación de proyecto anula una asignación de carpeta. Las asignaciones de carpetas y organizaciones no están disponibles para las reservas de la edición estándar.

Para crear una asignación en una reserva, esta debe cumplir al menos uno de los siguientes criterios:

  • Se ha configurado con un número de espacios de referencia asignados distinto de cero.

  • Está configurado con un número de ranuras de autoescalado distinto de cero.

  • Está configurado para usar ranuras inactivas y hay ranuras inactivas disponibles en el proyecto.

Si intentas asignar un recurso a una reserva que no cumpla al menos uno de estos criterios, recibirás el siguiente mensaje: Assignment is pending, your project will be executed as on-demand.

Puedes asignar un recurso a una reserva de conmutación por error, pero la asignación queda pendiente en la ubicación secundaria.

Permisos obligatorios

Para crear una asignación de 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.

Asignar una organización a una reserva

Consola

  1. En la Google Cloud 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 en la tabla de reservas.

  5. Abre la opción Acciones.

  6. Haz clic en Crear tarea.

  7. En la sección Crear una tarea, haz clic en Buscar.

  8. Busca la organización y selecciónala.

  9. En la sección Tipo de trabajo, selecciona el tipo de trabajo que quieres asignar a esta reserva. Entre las opciones se incluyen las siguientes:

    • QUERY
    • CONTINUOUS
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

    Para obtener más información sobre los tipos de trabajo, consulta Asignaciones de reservas. El valor predeterminado es QUERY.

    Para obtener más información sobre cómo permitir que los usuarios usen Gemini en BigQuery con asignaciones de la edición Enterprise Plus, consulta el artículo Configurar Gemini en BigQuery.

  10. Haz clic en Crear.

SQL

Para asignar una organización a una reserva, usa la declaración de DDL CREATE ASSIGNMENT.

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

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS (
      assignee = 'organizations/ORGANIZATION_ID',
      job_type = 'JOB_TYPE');

    Haz los cambios siguientes:

    • ADMIN_PROJECT_ID: el ID de proyecto 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
    • ASSIGNMENT_ID: el ID de la tarea

      El ID debe ser único para el proyecto y la ubicación, empezar y terminar con una letra minúscula o un número, y contener solo letras minúsculas, números y guiones.

    • ORGANIZATION_ID: el ID de organización
    • JOB_TYPE: el tipo de trabajo que se asignará a esta reserva, como QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

  3. Haz clic en Ejecutar.

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

bq

Para asignar los trabajos de una organización a una reserva, usa el comando bq mk con la marca --reservation_assignment:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=ORGANIZATION_ID \
    --job_type=JOB_TYPE \
    --assignee_type=ORGANIZATION

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
  • RESERVATION_NAME: el nombre de la reserva
  • ORGANIZATION_ID: el ID de la organización
  • JOB_TYPE: el tipo de trabajo que se asignará a esta reserva, como QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

Cuando crees una asignación de reserva, espera al menos 5 minutos antes de ejecutar una consulta. De lo contrario, la consulta se podría facturar con los precios bajo demanda.

Asignar un proyecto o una carpeta a una reserva

Consola

  1. En la Google Cloud 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 en la tabla de reservas.

  5. Abre la opción Acciones.

  6. Haz clic en Crear tarea.

  7. En la sección Crear una tarea, haz clic en Buscar.

  8. Busca el proyecto o la carpeta y selecciónalos.

  9. En la sección Tipo de trabajo, selecciona el tipo de trabajo que quieres asignar a esta reserva. Entre las opciones se incluyen las siguientes:

    • QUERY
    • CONTINUOUS
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

    Para obtener más información sobre los tipos de tareas, consulta Asignaciones de reservas. El valor predeterminado es QUERY.

  10. Haz clic en Crear.

SQL

Para asignar un proyecto a una reserva, usa la CREATE ASSIGNMENTdeclaración de DDL.

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

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="JOB_TYPE");

    Haz los cambios siguientes:

    • ADMIN_PROJECT_ID: el ID de proyecto 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
    • ASSIGNMENT_ID: el ID de la tarea

      El ID debe ser único para el proyecto y la ubicación, empezar y terminar con una letra minúscula o un número, y contener solo letras minúsculas, números y guiones.

    • PROJECT_ID: ID del proyecto que se va a asignar a la reserva
    • JOB_TYPE: el tipo de trabajo que se asignará a esta reserva, como QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

  3. Haz clic en Ejecutar.

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

bq

Para asignar trabajos a una reserva, usa el comando bq mk con la marca --reservation_assignment:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=PROJECT_ID \
    --job_type=JOB_TYPE \
    --assignee_type=PROJECT

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
  • RESERVATION_NAME: el nombre de la reserva
  • PROJECT_ID: ID del proyecto que se va a asignar a esta reserva
  • JOB_TYPE: el tipo de trabajo que se asignará a esta reserva, como QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

Terraform

Usa el recurso google_bigquery_reservation_assignment.

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 asigna un proyecto a la 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
  }
}

data "google_project" "project" {}

resource "google_bigquery_reservation_assignment" "default" {
  assignee    = "projects/${data.google_project.project.project_id}"
  job_type    = "QUERY"
  reservation = google_bigquery_reservation.default.id
}

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

Preparar Cloud Shell

  1. Abre Cloud Shell.
  2. Define el Google Cloud proyecto Google Cloud 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 Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.

Cuando crees una asignación de reserva, espera al menos 5 minutos antes de ejecutar una consulta. De lo contrario, la consulta se podría facturar con los precios bajo demanda.

Para crear un proyecto que solo use espacios inactivos, crea una reserva con 0 espacios asignados y, a continuación, sigue los pasos anteriores para asignar el proyecto a esa reserva.

Asignar un proyecto a none

Las asignaciones a none representan la ausencia de una asignación. Los proyectos asignados a none usan los precios bajo demanda.

SQL

Para asignar un proyecto a none, usa la declaración de DDL CREATE ASSIGNMENT.

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

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.none.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="QUERY");

    Haz los cambios siguientes:

    • LOCATION: la ubicación de los trabajos que deben usar los precios bajo demanda
    • ASSIGNMENT_ID: el ID de la tarea

      El ID debe ser único para el proyecto y la ubicación, empezar y terminar con una letra minúscula o un número, y contener solo letras minúsculas, números y guiones.

    • PROJECT_ID: ID del proyecto que se va a asignar a 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 asignar un proyecto a none, usa el comando bq mk con la marca --reservation_assignment:

bq mk \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=none \
    --job_type=QUERY \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

Haz los cambios siguientes:

  • LOCATION: la ubicación de los trabajos que deben usar precios bajo demanda
  • PROJECT_ID: ID del proyecto al que se va a asignar none

Terraform

Usa el recurso google_bigquery_reservation_assignment.

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 asigna un proyecto a none:

data "google_project" "project" {}

resource "google_bigquery_reservation_assignment" "default" {
  assignee    = "projects/${data.google_project.project.project_id}"
  job_type    = "QUERY"
  reservation = "projects/${data.google_project.project.project_id}/locations/us/reservations/none"
}

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

Preparar Cloud Shell

  1. Abre Cloud Shell.
  2. Define el Google Cloud proyecto Google Cloud 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 Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.

Anular una reserva en una consulta

Para solicitar asistencia o enviar comentarios sobre esta función, ponte en contacto con bigquery-wlm-feedback@google.com.

Para usar una reserva específica en una consulta, necesitas el siguiente permiso de gestión de identidades y accesos (IAM):

Para asignar una consulta a una reserva específica, haz una de las siguientes acciones:

Consola

  1. Ve a la página BigQuery.

    Ir a BigQuery

  2. Haz clic en Consulta de SQL.

  3. En el editor de consultas, introduce una consulta de GoogleSQL válida.

  4. Haz clic en Más y, a continuación, en Configuración de la consulta.

  5. Desmarca la casilla Configuración automática de la ubicación y, a continuación, selecciona la región o multirregión en la que se encuentra la reserva.

  6. En la lista Reserva, selecciona la reserva en la que quieras ejecutar la consulta.

  7. Haz clic en Guardar.

  8. Escribe una consulta en la pestaña del editor y ejecútala. La consulta se ejecuta en la reserva que has especificado.

SQL

Puedes usar la variable de sistema @@reservation para asignar la reserva en la que se ejecuta tu consulta:

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

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    SET @@reservation='RESERVATION';
    SELECT QUERY;

    Haz los cambios siguientes:

    • RESERVATION: la reserva en la que quieres que se ejecute la consulta.

    • QUERY: la consulta que quieras ejecutar.

  3. Haz clic en Ejecutar.

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

Por ejemplo, la siguiente consulta usa la instrucción SET para definir la reserva en test-reservation en la multirregión US y, a continuación, llama a una consulta básica:

SET @@reservation='projects/project1/locations/US/reservations/test-reservation';
SELECT 42;

bq

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. En Cloud Shell, ejecuta la consulta con el comando bq query con la marca --reservation_id:

    bq query --use_legacy_sql=false --reservation_id=RESERVATION_ID
    'QUERY'

    Haz los cambios siguientes:

    • RESERVATION_ID: la reserva en la que quieres ejecutar la consulta.

    • QUERY: la instrucción SQL de la consulta.

    Por ejemplo, la siguiente consulta se ejecuta en la reserva test-reservation de la multirregión US:

    bq query --reservation_id=project1.US:test-reservation 'SELECT 42;'
  3. API

    Para especificar una reserva mediante la API, inserta un nuevo trabajo y rellena la query propiedad de configuración del trabajo. Especifica tu reserva en el campo reservation.

Asignar slots a cargas de trabajo de BigQuery ML

En las siguientes secciones se proporciona información sobre los requisitos de asignación de reservas para los modelos de BigQuery ML. Para crear estas asignaciones de reserva, sigue los procedimientos que se indican en los artículos Asignar una organización a una reserva y Asignar un proyecto o una carpeta a una reserva.

Modelos externos

Los siguientes tipos de modelos de BigQuery ML usan servicios externos:

Puedes asignar ranuras reservadas a las consultas mediante estos servicios creando una asignación de reserva que use el tipo de tarea ML_EXTERNAL. Si no se encuentra ninguna asignación de reserva con un tipo de tarea ML_EXTERNAL, la tarea de consulta se ejecuta con los precios bajo demanda.

En las tareas de entrenamiento de modelos externos, las ranuras de la asignación de reservas se usan para los pasos de preprocesamiento, entrenamiento y posprocesamiento. Durante el entrenamiento, las ranuras no son preemptivas, pero durante el preprocesamiento y el posprocesamiento, se pueden usar las ranuras inactivas.

Modelos de factorización de matriz

Para crear un modelo de factorización de matrices, debes crear una reserva que use la edición Enterprise o Enterprise Plus de BigQuery y, a continuación, crear una asignación de reserva que use el tipo de tarea QUERY.

Otros tipos de modelos

En el caso de los modelos de BigQuery ML que no sean modelos externos ni modelos de factorización de matrices, puedes asignar ranuras reservadas a las consultas que usen estos servicios creando una asignación de reserva que utilice el tipo de tarea QUERY. Si no se encuentra ninguna asignación de reserva con el tipo de tarea QUERY, la tarea de consulta se ejecuta con la tarifa bajo demanda.

Buscar asignaciones de reserva

Permisos obligatorios

Para buscar una asignación de reserva de un proyecto, una carpeta o una organización concretos, necesitas el siguiente permiso de gestión de identidades y accesos (IAM):

  • bigquery.reservationAssignments.list en el proyecto de administración.

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
  • BigQuery Resource Viewer
  • BigQuery User

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.

Buscar la asignación de reserva de un proyecto

Para saber si tu proyecto, carpeta u organización está asignado a una reserva, haz lo siguiente:

Consola

  1. En la Google Cloud 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. En la tabla de reservas, despliega una reserva para ver qué recursos se le han asignado o usa el campo Filtrar para filtrar por nombre de recurso.

SQL

Para saber a qué reserva se han asignado los trabajos de consulta de tu proyecto, consulta la vista INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT.

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

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

      SELECT
        assignment_id
      FROM `region-LOCATION`.INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT
      WHERE
        assignee_id = 'PROJECT_ID'
        AND job_type = 'JOB_TYPE';

    Haz los cambios siguientes:

    • LOCATION: la ubicación de las reservas que quieres ver
    • ADMIN_PROJECT_ID: el ID de proyecto del proyecto de administración que posee el recurso de reserva
    • PROJECT_ID: ID del proyecto que se va a asignar a la reserva
    • JOB_TYPE: el tipo de trabajo que se asignará a esta reserva, como QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

  3. Haz clic en Ejecutar.

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

bq

Para saber a qué reserva se han asignado las tareas de consulta de tu proyecto, usa el comando bq show con la marca --reservation_assignment:

bq show \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --job_type=JOB_TYPE \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: ID del proyecto que tiene el recurso de reserva
  • LOCATION: la ubicación de las reservas que quieras ver
  • JOB_TYPE: el tipo de tarea que se asignará a esta reserva, como QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL
  • PROJECT_ID: el ID del proyecto

Actualizar asignaciones de reserva

Mover una tarea a otra reserva

Puedes mover una tarea de una reserva a otra.

Para mover una asignación de reserva, necesitas los siguientes permisos de gestión de identidades y accesos (IAM) en el proyecto de administración y en el asignado.

  • bigquery.reservationAssignments.create
  • bigquery.reservationAssignments.delete

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye estos permisos:

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

Para mover una tarea, usa el comando bq update:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --destination_reservation_id=DESTINATION_RESERVATION \
    ADMIN_PROJECT_ID:LOCATION.RESERVATION_NAME.ASSIGNMENT_ID

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: ID del proyecto que tiene el recurso de reserva
  • LOCATION: la ubicación de la nueva reserva
  • RESERVATION_NAME: la reserva de la que se va a mover la asignación
  • DESTINATION_RESERVATION: la reserva a la que se va a mover la tarea
  • ASSIGNMENT_ID: el ID de la tarea

    Para obtener el ID de la asignación, consulta List a project's reservation assignment (Listar la asignación de una reserva de un proyecto).

Eliminar asignaciones de reserva

Para quitar un proyecto de una reserva, elimina la asignación de la reserva. Si un proyecto no está asignado a ninguna reserva, hereda las asignaciones de sus carpetas u organizaciones superiores o, de lo contrario, usa los precios bajo demanda si no hay asignaciones superiores.

Cuando eliminas una asignación de reserva, las tareas que se ejecutan con las ranuras de esa reserva siguen ejecutándose hasta que se completan.

Permisos obligatorios

Para eliminar una asignación de 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

Quitar un proyecto de una reserva

Para quitar un proyecto de una reserva, sigue estos pasos:

Consola

  1. En la Google Cloud 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. En la tabla de reservas, despliega la reserva para encontrar el proyecto.

  5. Abre la opción Acciones.

  6. Haz clic en Eliminar.

SQL

Usa la DROP ASSIGNMENT instrucción DDL.

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

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    DROP ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`;

    Haz los cambios siguientes:

  3. Haz clic en Ejecutar.

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

bq

Para quitar un proyecto de una reserva, usa el comando bq rm con la marca --reservation_assignment:

bq rm \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment RESERVATION_NAME.ASSIGNMENT_ID

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: ID del proyecto que tiene el recurso de reserva
  • LOCATION: la ubicación de la reserva
  • RESERVATION_NAME: el nombre de la reserva
  • ASSIGNMENT_ID: el ID de la tarea

    Para obtener el ID de asignación, consulta el artículo Buscar la asignación de reserva de un proyecto.