Trabaja con Reservations

En esta página, se muestra cómo realizar tareas comunes con BigQuery Reservations.

La API de Reservations te permite comprar ranuras dedicadas (llamadas compromisos), crear grupos de ranuras (llamadas reservas) y asignar proyectos y organizaciones a esas reservas. Para obtener más información sobre estos conceptos, consulta Introducción a Reservations.

Trabaja con compromisos

Compra ranuras

Los compromisos son un recurso regional. Los compromisos adquiridos en una región no pueden usarse ni trasladarse entre regiones.

Console

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

    Ir a la página BigQuery

  2. En el panel de navegación, ve a la sección Reservas (Reservations). Botón de navegación de Reservations.

  3. Haz clic en el botón Buy slots (Comprar ranuras).Compra ranuras.

  4. Selecciona la duración del compromiso. Selecciona por mes.

  5. Activa Configuración predeterminada de la organización como tasa fija si deseas asignar toda la organización a las ranuras que estás a punto de comprar. De manera opcional, puedes desactivar esta opción y asignar proyectos individuales como se muestra en la sección Asigna la organización a la reserva.

  6. Selecciona la ubicación.

  7. Ingresa la cantidad de ranuras.

  8. Revisa tu pedido y, para confirmarlo, ingresa CONFIRM. Para completar la compra, selecciona PURCHASE. Ingresa confirmar.

  9. Espera 20 minutos para que se aprovisione la capacidad. Después de aprovisionar la capacidad, el compromiso de capacidad solicitado tendrá un estado verde. Compromisos de ranuras.

La primera vez que compras una capacidad, se crea una reserva default.

bq

Usa el comando bq mk con la marca --capacity_commitment para comprar ranuras.

bq mk \
  --project_id=ADMIN_PROJECT_ID \
  --location=LOCATION \
  --capacity_commitment \
  --plan=PLAN_TYPE \
  --slots=NUMBER_OF_SLOTS

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto del proyecto de administración que mantendrá la propiedad de este compromiso.
  • LOCATION es la ubicación del proyecto.
  • PLAN_TYPE es el tipo de plan. Es uno de los siguientes: FLEX, MONTHLY o ANNUAL
  • NUMBER_OF_SLOTS es la cantidad de ranuras que deseas comprar.

Visualiza los compromisos adquiridos

Para ver tus compromisos de capacidad por proyecto, haz lo siguiente:

Console

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

    Ir a la página BigQuery

  2. Haz clic en la sección Reservas.

  3. Haz clic en la pestaña Slot commitments.

    Compromisos de ranuras.

bq

Usa el comando bq ls con la marca --capacity_commitment para enumerar los compromisos de un proyecto de administración.

bq ls \
 --capacity_commitment \
 --location=LOCATION \
 --project_id=ADMIN_PROJECT_ID

En el ejemplo anterior, se ilustra lo siguiente:

  • LOCATION es la ubicación del proyecto.
  • ADMIN_PROJECT_ID es el ID del proyecto.

Renueva un compromiso

Puedes elegir la opción de plan de renovación del compromiso antes de la fecha de finalización.

Console

Compromisos nuevos

Puedes elegir la opción de plan de renovación durante la creación del compromiso.

Compromisos existentes

Puedes cambiar el plan de renovación de los compromisos de permanencia anuales existentes.

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

    Ir a la página BigQuery

  2. Haz clic en la sección Reservas.

  3. Haz clic en la pestaña Slot commitments.

  4. En el compromiso que deseas editar, haz clic en Acciones y, luego, en Editar.

bq

Para cambiar la opción de plan de renovación de un compromiso existente, usa el comando bq update con la opción --renewal_plan.

bq update \
  --project_id=ADMIN_PROJECT_ID \
  --location=LOCATION \
  --renewal_plan=PLAN_TYPE \
  --capacity_commitment COMMITMENT_ID

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto.
  • LOCATION es la ubicación del proyecto.
  • PLAN_TYPE es el tipo de plan. Es uno de los siguientes: FLEX, MONTHLY o ANNUAL
  • COMMITMENT_ID es el ID del compromiso. Para obtener el ID, consulta Ve los compromisos comprados.

Convierte un compromiso en uno de mayor duración

Puedes convertir tu compromiso en un tipo de compromiso de mayor duración en cualquier momento:

  • Puedes convertir el compromiso de tus ranuras flexibles en uno mensual o anual.
  • Puedes convertir tu compromiso de permanencia mensual en uno anual.

bq

Para convertir un compromiso, usa el comando bq update con la opción --renewal_plan. Desde el momento en que actualizas el compromiso, se te cobrará la tarifa asociada con el plan nuevo y la fecha de finalización se restablecerá.

bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--plan=PLAN_TYPE \
--renewal_plan=RENEWAL_PLAN \
--capacity_commitment COMMITMENT_ID

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto.
  • LOCATION es la ubicación del proyecto.
  • PLAN_TYPE es el tipo de plan nuevo. Es uno de los siguientes: FLEX, MONTHLY o ANNUAL
  • RENEWAL_PLAN es el tipo de plan de renovación.
  • COMMITMENT_ID es el ID del compromiso. Para obtener el ID, consulta Ve los compromisos comprados.

Divide un compromiso

Puedes dividir el compromiso en dos del mismo plan y con la misma fecha de finalización. Esto puede ser útil si deseas renovar una parte de un compromiso. Por ejemplo, si tienes un compromiso anual de 1,000 ranuras, puedes dividirlo y renovar 500 ranuras a la tasa anual y convertir las otras 500 en ranuras flexibles después de la fecha de finalización.

bq

Usa la herramienta de línea de comandos de bq para dividir los compromisos.

bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--split \
--slots=SLOTS_TO_SPLIT \
--capacity_commitment COMMITMENT_ID

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto.
  • LOCATION es la ubicación del proyecto.
  • SLOTS_TO_SPLIT es la cantidad de ranuras que deseas dividir del compromiso original y convertir en un compromiso nuevo.
  • COMMITMENT_ID es el ID del compromiso. Para obtener el ID, consulta Ve los compromisos comprados.

Combina dos compromisos

Puedes combinar varios compromisos del mismo plan en uno solo. La fecha de finalización del compromiso combinado es la fecha de finalización máxima de los compromisos originales.

bq

Usa la herramienta de línea de comandos de bq para combinar los compromisos. Con el siguiente comando, se combinan dos compromisos en uno.

bq update \
--project_id=ADMIN_PROJECT_ID \
--location=US \
--merge \
--capacity_commitment COMMITMENT1,COMMITMENT2

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto.
  • COMMITMENT1 es el primer compromiso que se combina.
  • COMMITMENT2 es el segundo compromiso que se combina.

Borra un compromiso

Un compromiso de capacidad es elegible para la eliminación en función de la duración del compromiso:

La fecha de finalización del compromiso se muestra en la IU de Reservations. Puedes borrar el compromiso de capacidad después de la fecha de finalización. Primero, asegúrate de que haya suficientes ranuras sin asignar. De lo contrario, debes disminuir la cantidad de ranuras de una reserva o quitar las reservas por completo.

Console

Para borrar un compromiso de capacidad, completa los siguientes pasos:

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

    Ir a la página BigQuery

  2. Haz clic en la sección Reservas.

  3. Haz clic en la pestaña Compromisos de ranuras.

  4. En el compromiso que deseas borrar, haz clic en Actions (Acciones) y, luego, en Delete (Borrar).Borrar compromisos.

  5. Escribe “REMOVE” y presiona Continuar (Proceed). Borrar compromisos.

bq

Usa el comando bq rm con la marca --capacity_commitment para borrar un compromiso de capacidad.

bq rm \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--capacity_commitment COMMITMENT_ID

En el ejemplo anterior, se ilustra lo siguiente:

Trabaja con reservas

Las reservas te permiten asignar una cantidad dedicada de ranuras de un compromiso a una carga de trabajo. Por ejemplo, es posible que no desees que una carga de trabajo de producción compita con cargas de trabajo de prueba para obtener ranuras. Puedes crear una reserva llamada prod y asignarle tus cargas de trabajo de producción. Para obtener más información, consulta Reservas.

Crea una reserva con ranuras dedicadas

Console

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

    Ir a la página BigQuery

  2. Haz clic en la sección Reservas.

  3. Haz clic en el botón Crear reserva (Create Reservation). Crea la reserva.

  4. En el campo Nombre de la reserva (Reservation name), ingresa prod. Información para crear una reserva.

  5. En el campo Ubicación, selecciona US.

  6. Para el número de ranuras, ingresa 500.

  7. Haz clic en Guardar (Save).

La reserva de producción nueva puede verse en la tabla de descripción general.

Descripción general de la reserva.

bq

Usa el comando bq mk con la marca --reservation para crear una reserva.

bq mk \
  --project_id=ADMIN_PROJECT_ID \
  --location=LOCATION \
  --reservation \
  --slots=NUMBER_OF_SLOTS \
  --ignore_idle_slots=false \
  RESERVATION_NAME

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto.
  • LOCATION es la ubicación del proyecto.
  • NUMBER_OF_SLOTS es la cantidad de ranuras que asignarás a la reserva. Debe haber suficientes ranuras sin asignar en el compromiso.
  • RESERVATION_NAME es el nombre de la reserva.

Para obtener más información sobre la marca --ignore_idle_slots, consulta ranuras inactivas. El valor predeterminado es false.

Cambia el tamaño de una reserva

Puedes agregar o quitar ranuras de una reserva existente.

Console

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

    Ir a la página BigQuery

  2. Haz clic en la sección Reservations (Reservas).Sección de reservas.

  3. Selecciona la reserva prod antes creada y haz clic en el botón Edit (Editar).Edición de reservas.

  4. Ingresa el nuevo tamaño de reserva: 1,000 ranuras.Aumenta las ranuras de la reserva.

  5. Haz clic en Guardar.

  6. El tamaño actualizado de la reserva de prod se muestra en la lista de reservas. Tamaño actualizado de la reserva.

bq

Usa el comando bq update con la marca --reservation para actualizar el tamaño de una reserva.

bq update \
  --project_id=ADMIN_PROJECT_ID \
  --location=LOCATION \
  --slots=NUMBER_OF_SLOTS \
  --reservation RESERVATION_NAME

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto.
  • LOCATION es la ubicación del proyecto.
  • NUMBER_OF_SLOTS es la cantidad de ranuras que asignarás a la reserva.
  • RESERVATION_NAME es el nombre de la reserva.

Actualiza la configuración de --ignore_idle_slots

La marca --ignore_idle_slots controla si las consultas que se ejecutan en una reserva pueden usar ranuras inactivas de otras reservas. Para obtener más información, consulta Ranuras inactivas. Puedes actualizar esta configuración en una reserva existente.

bq

Usa el comando bq update con la marca --reservation para actualizar una reserva. En el siguiente ejemplo, se establece --ignore_idle_slots como true, lo que significa que la reserva solo usará las ranuras asignadas a la reserva.

bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--ignore_idle_slots=true \
--reservation RESERVATION_NAME

Aquí:

  • ADMIN_PROJECT_ID es el ID del proyecto.
  • LOCATION es la ubicación del proyecto.
  • RESERVATION_NAME es el nombre de la reserva.

Borra una reserva

Cuando borras una reserva, los trabajos que se ejecutan actualmente con ranuras de esa reserva fallarán. Para evitar errores, permite que los trabajos en curso se completen antes de borrar la reserva.

bq

Usa el comando bq rm con la marca --reservation para borrar una reserva.

bq rm \
--project_id=ADMIN_PROJECT_ID \
  --location=LOCATION \
  --reservation RESERVATION_NAME

Aquí:

  • ADMIN_PROJECT_ID es el ID del proyecto.
  • LOCATION es la ubicación del proyecto.
  • RESERVATION_NAME es el nombre de la reserva.

Trabaja con asignaciones

Asigna una organización a una reserva

Console

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

    Ir a la página BigQuery

  2. En el panel de navegación, ve a la sección Reservas (Reservations).Botón de navegación de Reservations.

  3. Haz clic en la pestaña Assignments (Asignaciones).Pestaña Assignments (Asignaciones).

  4. En la sección Search and create assignments (Buscar y crear asignaciones), haz clic en el botón Browse (Examinar) y selecciona tu organización.Selector de proyectos de asignaciones.

  5. En el selector de Reserva, selecciona el nombre de la reserva que termina con default.Selector de reservas de asignaciones..

  6. Haz clic en Crear.

bq

Usa el comando bq mk con la marca --reservation_assignment para asignar los trabajos de una organización a una reserva.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto al que pertenece el recurso de reserva.
  • LOCATION es la ubicación del proyecto.
  • RESERVATION_NAME es el nombre de la reserva.
  • JOB_TYPE es el tipo de trabajo que se asignará a esta reserva. Es uno de los siguientes: QUERY, PIPELINE o ML_EXTERNAL.
  • ORGANIZATION_ID es el ID de la organización.

Asigna un proyecto a una reserva

Console

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

    Ir a la página BigQuery

  2. Haz clic en la sección Reservas.

  3. Haz clic en la pestaña Assignments (Asignaciones).Pestaña Asignaciones.

  4. En la sección Search and create assignments (Buscar y crear asignaciones), haz clic en el botón Browse (Examinar) y selecciona tu proyecto de producción.Selector de proyectos de asignaciones.

  5. En el selector de Reserva, selecciona el nombre de la reserva que termina con prod.Selector de reservas de asignaciones..

  6. Haz clic en Crear.

bq

Usa el comando bq mk con la marca --reservation_assignment para asignar trabajos a una reserva.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto al que pertenece el recurso de reserva.
  • LOCATION es la ubicación del proyecto.
  • RESERVATION_NAME es el nombre de la reserva.
  • JOB_TYPE es el tipo de trabajo que se asignará a esta reserva. Es uno de los siguientes: QUERY, PIPELINE o ML_EXTERNAL.
  • PROJECT_ID es el ID del proyecto que se asignará a esta reserva.

Asigna un proyecto a None

Las asignaciones None representan la ausencia de una asignación. Los proyectos con asignaciones None usan los precios según demanda.

bq

Usa el comando bq mk con la marca --reservation_assignment para asignar un proyecto a None.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto al que pertenece el recurso de asignación.
  • LOCATION es la ubicación del proyecto.
  • PROJECT_ID es el ID del proyecto que se asignará a None.

Asigna ranuras a cargas de trabajo de BigQuery ML

Ciertas consultas de BigQuery ML usan servicios externos a BigQuery. Puedes asignar ranuras reservadas para estos servicios externos.

bq

Usa el comando bq mk con la marca --reservation_assignment y establece la marca --job_type en ML_EXTERNAL.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto al que pertenece el recurso de reserva.
  • LOCATION es la ubicación del proyecto.
  • RESERVATION_NAME es el nombre de la reserva.
  • PROJECT_ID es el ID del proyecto que se asignará a esta reserva.

Enumera la asignación de reserva de un proyecto

Puedes averiguar si tu organización, carpeta o proyecto está asignado a una reserva si haces lo siguiente:

Console

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

    Ir a la página BigQuery

  2. Haz clic en la sección Reservas.

  3. Haz clic en la pestaña Assignments (Asignaciones).Pestaña Asignaciones.

  4. Haz clic en el selector de proyectos y selecciona la organización, carpeta o proyecto que desees.Selector de proyectos de asignaciones.

  5. Si la asignación de reserva existe, aparecerá debajo del selector.

bq

Usa el comando bq show con la marca --reservation_assignment para encontrar a qué reserva están asignados los trabajos de consulta de tu proyecto.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto al que pertenece el recurso de reserva.
  • LOCATION es la ubicación del proyecto.
  • RESERVATION_NAME es el nombre de la reserva.
  • JOB_TYPE es el tipo de trabajo. Es uno de los siguientes: QUERY, PIPELINE o ML_EXTERNAL.
  • PROJECT_ID es el ID del proyecto.

Mueve una asignación a una reserva diferente

Puedes mover una asignación de una reserva a otra.

bq

Usa el comando bq update para mover la asignación.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_PROJECT_ID es el ID del proyecto al que pertenece el recurso de reserva.
  • LOCATION es la ubicación del proyecto.
  • DESTINATION_RESERVATION es la reserva a la que se moverá la asignación.
  • ASSIGNMENT_ID es el ID de la asignación. Para obtener el ID de asignación, consulta Enumera la asignación de reserva de un proyecto.

Quita un proyecto de una reserva

Puedes quitar proyectos de las reservas si quitas las asignaciones de reservas. Si un proyecto no está asignado a ninguna reserva, hereda cualquier asignación en sus organizaciones o carpetas superiores, o usa los precios según demanda si no hay asignaciones superiores.

Para quitar un proyecto de una reserva, haz lo siguiente:

Console

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

    Ir a la página BigQuery

  2. Haz clic en la sección Reservas.

  3. Haz clic en la pestaña Assignments (Asignaciones).Pestaña Asignaciones.

  4. En la asignación que deseas borrar, haz clic en Acciones (Actions) y, luego, en Borrar (Delete).Borra la asignación.

bq

Usa el comando bq rm con la marca --reservation_assignment para quitar un proyecto de una reserva.

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

En el ejemplo anterior, se ilustra lo siguiente: