Comprar y gestionar confirmaciones de ranura

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.

Una confirmación de capacidad es una compra de capacidad de computación de BigQuery durante un periodo mínimo. Comprar una confirmación de capacidad es opcional al crear una reserva con una edición, pero puede suponer un ahorro de costes.

Los compromisos son recursos regionales. Los compromisos que se compren en una región o en varias regiones no se pueden utilizar en otras regiones o multirregiones. Los compromisos no se pueden mover entre regiones ni entre regiones y multirregiones.

Habilitar la API Reservations

La API Reservation de BigQuery es distinta de la API de BigQuery y debe habilitarse por separado. Para obtener más información, consulta el artículo sobre cómo habilitar e inhabilitar las APIs.

  • El nombre de la API es "API BigQuery Reservations".
  • El endpoint de la API Reservation de BigQuery es bigqueryreservation.googleapis.com.

Habilita la API.

Comprar slots

Para reservar capacidad durante un periodo mínimo, puedes comprar un compromiso de capacidad. De esta forma, se aplica un descuento y se ahorran costes. Para obtener más información sobre los costes específicos, consulta los precios de BigQuery.

Permisos obligatorios

Para crear un compromiso de capacidad, 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

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 confirmación de capacidad

Los compromisos son recursos regionales. Los compromisos que se compren en una región o en varias regiones no se pueden utilizar en otras regiones o multirregiones. Los compromisos no se pueden mover entre regiones ni entre regiones y multirregiones.

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

  4. En Configurar:

    1. Selecciona la ubicación.
    2. En la sección Modelo de capacidad, seleccione el modelo de capacidad.
    3. Si seleccionas la opción Escalado automático (edición):
      1. En la lista Edición, selecciona la edición. Los compromisos de capacidad solo se admiten en las ediciones Enterprise y Enterprise Plus. El autoescalado solo está disponible en una edición. Para obtener más información sobre las ediciones, consulta la introducción a las ediciones de BigQuery.
    4. Selecciona la Duración de la confirmación, que especifica tu plan de confirmación.
    5. Si vas a comprar un compromiso anual, selecciona el plan de renovación que quieras que se aplique cuando venza el compromiso:

      1. Renovar anualmente. Cuando vence el compromiso anual, se renueva por otro año como compromiso anual.

      Para obtener más información, consulta el artículo Compromisos de espacio publicitario.

    6. Introduce el Número de ranuras que quieras comprar.

    7. Haz clic en Siguiente.

  5. Revisa la estimación del coste de tu compra.

  6. En Confirmar y enviar:

    1. Escribe CONFIRM para confirmar la compra.
    2. Haz clic en Comprar para comprar los espacios.
  7. Para ver el compromiso, haz clic en Ver confirmaciones de ranuras. Una vez que se ha aprovisionado la capacidad, el compromiso de capacidad solicitado tiene el estado verde.

La primera vez que compres capacidad, se creará una default reserva.

SQL

Para crear un compromiso de capacidad, usa la declaración de DDL CREATE CAPACITY.

  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 CAPACITY
      `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID`
    OPTIONS (
      slot_count = NUMBER_OF_SLOTS,
      edition = EDITION,
      plan = 'PLAN_TYPE');

    Haz los cambios siguientes:

    • ADMIN_PROJECT_ID: el ID del proyecto de administración que mantendrá la propiedad de este compromiso
    • LOCATION: la ubicación del compromiso
    • COMMITMENT_ID: el ID del compromiso

      Debe ser único en el proyecto y la ubicación. 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_SLOTS: el número de ranuras que quieres comprar
    • EDITION: la edición asociada al compromiso de capacidad. Solo puedes crear un compromiso de capacidad con las ediciones Enterprise o Enterprise Plus. Para obtener más información sobre las ediciones, consulta Introducción a las ediciones de BigQuery.
    • PLAN_TYPE: el tipo de plan, como ANNUAL o THREE_YEAR.

  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 mk con la marca --capacity_commitment para comprar espacios.

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --capacity_commitment=true \
    --edition=EDITION \
    --plan=PLAN_TYPE \
    --renewal_plan=RENEWAL_PLAN_TYPE \
    --slots=NUMBER_OF_SLOTS

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: el ID del proyecto de administración que mantendrá la propiedad de este compromiso.
  • LOCATION: la ubicación del compromiso
  • EDITION: la edición asociada al compromiso de capacidad. Solo puedes crear un compromiso de capacidad con las ediciones Enterprise o Enterprise Plus. Para obtener más información sobre las ediciones, consulta Introducción a las ediciones de BigQuery.
  • PLAN_TYPE: el tipo de plan, como ANNUAL o THREE_YEAR.
  • RENEWAL_PLAN_TYPE: el tipo de plan de renovación, como NONE, ANNUAL o THREE_YEAR.
  • NUMBER_OF_SLOTS: número de espacios publicitarios que se van a comprar.

Ver confirmaciones de capacidad

Permisos obligatorios

Para ver los compromisos, 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
  • 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.

Ver confirmaciones de capacidad por proyecto

Para ver tus compromisos de capacidad por proyecto, 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 Compromisos de espacio publicitario. Tus confirmaciones de capacidad se muestran en la tabla de la sección Confirmaciones.

SQL

Para ver los compromisos de un proyecto de administración, consulta la vista INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_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
      capacity_commitment_id
    FROM
      `region-LOCATION`.INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT
    WHERE
      project_id = 'ADMIN_PROJECT_ID'
      AND slot_count = 100;

    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

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

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

Haz los cambios siguientes:

Actualizar confirmaciones de capacidad

Puede hacer los siguientes cambios en una confirmación de capacidad:

  • Actualizar el plan de renovación del compromiso
  • Convertir un compromiso en un plan sujeto a un compromiso con una duración mayor.
  • Dividir un compromiso en dos.
  • Combinar dos compromisos en uno solo.

Permisos obligatorios

Para actualizar los compromisos de capacidad, 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

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.

Renovar un compromiso

Los compromisos anuales tienen un plan de renovación que se especifica al crear o convertir un compromiso anual. Puedes cambiar el plan de renovación de tu compromiso anual en cualquier momento antes de la fecha de finalización del compromiso.

Consola

Para cambiar tu plan de renovación de un compromiso anual, sigue estos pasos:

  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 Compromisos de espacio publicitario.

  4. Busca el compromiso que quieras editar.

  5. Haz clic en Acciones y, a continuación, selecciona la opción Editar plan de renovación.

  6. Selecciona el nuevo plan de renovación.

bq

Para cambiar el plan de renovación de un compromiso anual, usa el comando bq update con la marca --capacity_commitment y la marca --renewal_plan.

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

Haz los cambios siguientes:

Convertir un compromiso en uno de mayor duración

Puedes convertir tu contrato en un contrato de mayor duración en cualquier momento. Esto funciona incluso si quieres cambiar de un plan antiguo a una edición.

En cuanto actualices tu compromiso, se te cobrará la tarifa asociada al nuevo plan y se restablecerá la fecha de finalización.

Para convertir un compromiso, usa el comando bq update con la marca --plan.

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

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: el ID del proyecto
  • LOCATION: la ubicación del compromiso
  • PLAN_TYPE: el tipo de plan, como ANNUAL o THREE_YEAR.
  • RENEWAL_PLAN: el plan de renovación

    Esto solo se aplica si PLAN_TYPE es ANNUAL.

  • COMMITMENT_ID: el ID del compromiso

    Para obtener el ID, consulta Ver compromisos comprados.

Dividir una confirmación

Puedes dividir tu compromiso en dos. Esto puede ser útil si quieres renovar parte de un compromiso. Por ejemplo, si tienes un compromiso anual de 1000 ranuras, puedes dividir 300 ranuras en un nuevo compromiso, dejando 700 ranuras en el compromiso original. Después, podrías renovar 700 espacios con la tarifa anual y convertir 300 espacios en un compromiso de tres años. Puedes dividir un compromiso en incrementos de 50 ranuras.

Cuando divides un compromiso, el nuevo compromiso tiene el mismo plan y la misma fecha de finalización que el compromiso original.

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 Compromisos de espacio publicitario.

  4. Selecciona el compromiso que quieras dividir.

  5. Haz clic en Dividir.

  6. En la página Dividir compromiso, usa el control deslizante Configurar división para seleccionar cuántos espacios publicitarios quieres incluir en cada división (en incrementos de 50 espacios).

  7. Haz clic en Dividir para dividir el compromiso. El nuevo compromiso se muestra en la pestaña Compromisos de ranuras.

bq

Para dividir los compromisos, usa el comando bq update.

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

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: el ID del proyecto
  • LOCATION: la ubicación del compromiso
  • SLOTS_TO_SPLIT: número de ranuras que se van a dividir del compromiso original en un nuevo compromiso
  • COMMITMENT_ID: el ID del compromiso

    Para obtener el ID, consulta Ver compromisos comprados.

Combinar dos compromisos

Puedes combinar varios compromisos en uno solo. Todos los compromisos que se combinen deben ser del mismo tipo (ANNUAL o THREE_YEAR). La fecha de finalización del compromiso combinado es la fecha de finalización máxima de los compromisos originales. Si alguno de los compromisos tiene una fecha de finalización anterior, se ampliará hasta la fecha posterior y se te cobrará un importe prorrateado por esos espacios.

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 Compromisos de espacio publicitario.

  4. Selecciona los compromisos que quieras combinar.

  5. Haz clic en Combinar.

  6. En la página Combinar compromisos, revisa los detalles de la combinación y haz clic en Combinar. El nuevo compromiso combinado se muestra en la pestaña Compromisos de ranuras.

bq

Para combinar dos compromisos en uno, usa el comando bq update:

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

Haz los cambios siguientes:

  • ADMIN_PROJECT_ID: el ID del proyecto
  • LOCATION: la ubicación de los compromisos
  • COMMITMENT1: la primera confirmación de la combinación
  • COMMITMENT2: el segundo compromiso que se va a combinar

Actualizar compromisos a una nueva edición

No puedes cambiar directamente un compromiso a una edición nueva. Por ejemplo, no puedes cambiar de la edición Enterprise a la Enterprise Plus. En su lugar, sigue estos pasos para cambiar a un compromiso:

  1. Crea un nuevo compromiso. Elige la edición actualizada que corresponda. Ten en cuenta que este nuevo compromiso tiene una fecha de finalización diferente a la de tu compromiso actual.

  2. Ponte en contacto con el equipo de Asistencia para solicitar la cancelación de tu compromiso actual.

Caducidad de la confirmación

Las confirmaciones caducan al final de su duración. No puedes eliminar un compromiso mientras esté activo. Si el plan de renovación se establece en NONE, el compromiso se elimina automáticamente. De lo contrario, se renovará con un compromiso anual o de tres años, según el plan de renovación. Para cambiar el plan de renovación a NONE, sigue los pasos que se indican en el artículo Renovar un compromiso.

Después de renovar un compromiso, el valor de Hora de inicio no cambia. Hace referencia a la hora de inicio del compromiso original. El valor de Hora de finalización es la hora en la que caduca la confirmación renovada. Por ejemplo, si tienes un compromiso anual creado el 13 de diciembre del 2022 y se renueva el 13 de diciembre del 2023. Si consulta los detalles del compromiso el 14 de diciembre del 2023, el valor de Hora de inicio sería el 13 de diciembre del 2022 y el de Hora de finalización sería el 12 de diciembre del 2024.

Los espacios publicitarios de referencia siempre se cobran. Si una confirmación de capacidad caduca, es posible que tengas que ajustar manualmente la cantidad de ranuras de base de tus reservas para evitar cargos no deseados. Por ejemplo, supongamos que tienes un compromiso de 1 año con 100 ranuras y una reserva con 100 ranuras base. La confirmación caduca y no tiene un plan de renovación. Cuando caduque el compromiso, pagarás 100 ranuras básicas con la tarifa de pago por uso.

Controlar la creación de confirmaciones de capacidad

Puedes usar políticas de denegación de gestión de identidades y accesos (IAM) para tener más control sobre quién puede crear compromisos de capacidad.

Las políticas de denegación se pueden crear para un conjunto de usuarios o para todos, y se pueden configurar con excepciones y condiciones.

Por ejemplo, la siguiente política deniega a todos los usuarios el permiso para crear compromisos de capacidad, excepto a la entidad principal "lucian@example.com":

{
  "deniedPrincipals": [
    "principalSet://goog/public:all"
  ],
  "deniedPermissions": [
    "bigquery.googleapis.com/capacityCommitments.create"
  ],
  "exceptionPrincipals": [
    "principal://goog/subject/lucian@example.com"
  ]
}

Esta política se puede asociar a una organización para controlar quién puede crear los compromisos.

Ten en cuenta que estas políticas tienen prioridad sobre los roles de gestión de identidades y accesos, por lo que incluso un usuario con el rol bigquery.admin no podrá crear un compromiso a menos que se elimine o se modifique la política.

Para obtener más información, consulta Denegar el acceso a los recursos.

Solucionar problemas con los compromisos de capacidad

En esta sección se describen los pasos para solucionar problemas que pueden resultarte útiles si tienes algún problema mientras usas las reservas de BigQuery.

Los espacios comprados están pendientes

Los slots están sujetos a la capacidad disponible. Cuando compras compromisos de ranuras y BigQuery los asigna, en la columna Estado se muestra una marca de verificación. Si BigQuery no puede asignar los slots solicitados inmediatamente, la columna Estado se mantendrá en estado pendiente. Es posible que tengas que esperar varias horas hasta que los slots estén disponibles. Si necesitas acceder a los espacios antes, prueba lo siguiente:

  1. Elimina el compromiso pendiente.
  2. Adquiere un nuevo compromiso con un número menor de ranuras. En función de la capacidad, el compromiso más pequeño puede activarse inmediatamente.
  3. Compra los espacios restantes con un compromiso independiente. Es posible que estos espacios aparezcan como pendientes en la columna Estado, pero suelen activarse en un plazo de unas horas.
  4. Opcional: Cuando ambas opciones estén disponibles, puedes combinarlas en una sola, siempre que hayas comprado el mismo plan para ambas.

Si una reserva de espacio falla o tarda mucho en completarse, considera la posibilidad de usar los precios bajo demanda temporalmente. Con esta solución, puede que tengas que ejecutar consultas críticas en un proyecto diferente que no esté asignado a ninguna reserva o que tengas que eliminar la asignación del proyecto por completo.