Compra y administra compromisos de ranuras

La API de BigQuery Reservation te permite comprar ranuras dedicadas (llamadas compromisos), crean grupos de ranuras (llamadas reservas), y asigna proyectos, carpetas y organizaciones a esas reservas.

Un compromiso de capacidad es la compra una capacidad de procesamiento de BigQuery durante un período mínimo. La compra de un compromiso de capacidad es opcional cuando se crea una reserva con una edición, pero puede generar ahorros de costos.

Los compromisos son un recurso regional. Los compromisos adquiridos en una o en varias regiones no se pueden usar en otras regiones ni multirregiones. Los compromisos no se pueden mover entre regiones o entre regiones ni multirregiones.

Habilita la API de Reservations

La API de BigQuery Reservation es distinta de la API de BigQuery existente y debe habilitarse de forma independiente. Si deseas obtener más información, consulta Inhabilita y habilita las API.

  • El nombre de la API es “API de BigQuery Reservations”.
  • El extremo de la API de BigQuery Reservation es bigqueryreservation.googleapis.com.

Habilita la API

Compra ranuras

Para reservar la capacidad por un tiempo mínimo, puedes comprar un compromiso de capacidad. Esto proporciona un descuento y ahorra costos. Para obtener más información sobre los costos específicos, consulta Precios de BigQuery.

Permisos necesarios

Para crear un compromiso de capacidad, necesitas el siguiente permiso de Identity and Access Management (IAM):

Cada una de los siguientes roles predefinidos de IAM incluye este permiso:

  • BigQuery Admin
  • BigQuery Resource Admin

Para obtener más información de los roles de IAM en BigQuery, consulta Funciones y permisos predefinidos.

Crea un compromiso de capacidad

Los compromisos son un recurso regional. Los compromisos adquiridos en una o en varias regiones no se pueden usar en otras regiones ni multirregiones. Los compromisos no se pueden mover entre regiones ni entre regiones y multirregiones.

Console

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

    Ir a BigQuery

  2. En el panel de navegación, ve a la sección Administración de capacidad.

  3. Haz clic en Crear compromiso.

  4. En Configurar, haz lo siguiente:

    1. Selecciona la ubicación.
    2. En la sección Modelo de capacidad, selecciona el modelo de capacidad.
    3. Si seleccionas la opción Ajuste de escala automático, haz lo siguiente:
      1. En la lista Edición, selecciona la edición. Los compromisos de capacidad solo son compatibles con las ediciones Enterprise y Enterprise Plus. El ajuste de escala automático solo está disponible dentro de una edición. Para obtener más información sobre las ediciones, consulta Introducción a las ediciones de BigQuery.
    4. Selecciona la Duración del compromiso, que especifica tu plan de compromiso.
    5. Si adquieres un compromiso anual, selecciona el Plan de renovación que deseas aplicar 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 Compromisos.

    6. Ingresa la cantidad de ranuras que deseas comprar.

    7. Haz clic en Siguiente.

  5. Revisa la estimación de costos de tu compra.

  6. En Confirmar y enviar, haz lo siguiente:

    1. Escribe CONFIRMAR para confirmar la compra.
    2. Haz clic en Comprar para adquirir las ranuras.
  7. Para ver el compromiso, haz clic en Ver compromisos de ranuras. Después de aprovisionar la capacidad, el compromiso de capacidad solicitado tiene un estado verde.

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

SQL

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

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

    Ir a BigQuery

  2. En el editor de consultas, escribe la siguiente oración:

    CREATE CAPACITY
      `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID`
    OPTIONS (
      slot_count = NUMBER_OF_SLOTS,
      edition = EDITION,
      plan = 'PLAN_TYPE');

    Reemplaza 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 compromiso.
    • COMMITMENT_ID: El ID del compromiso

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

    • NUMBER_OF_SLOTS es la cantidad de ranuras que se deben comprar.
    • EDITION es la edición asociada con el 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.

Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.

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=true \
    --edition=EDITION \
    --plan=PLAN_TYPE \
    --renewal_plan=RENEWAL_PLAN_TYPE \
    --slots=NUMBER_OF_SLOTS

Reemplaza 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 compromiso.
  • EDITION es la edición asociada con el 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: Es el tipo de plan de renovación, como NONE, ANNUAL o THREE_YEAR.
  • NUMBER_OF_SLOTS es la cantidad de ranuras que se deben comprar.

Ve los compromisos de capacidad

Permisos necesarios

Para ver los compromisos, necesitas el siguiente Identity and Access Management (IAM):

Cada una de los siguientes roles predefinidos de IAM incluye este permiso:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor
  • BigQuery Resource Viewer
  • BigQuery User

Para obtener más información sobre las funciones de IAM en BigQuery, consulta Funciones y permisos predefinidos.

Ve los compromisos de capacidad por proyecto

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

Console

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

    Ir a BigQuery

  2. En el panel de navegación, ve a la sección Administración de capacidad.

  3. Haz clic en la pestaña Slot commitments. Los compromisos de capacidad se enumeran en la tabla en Compromisos.

SQL

Para ver los compromisos de un proyecto de administración, consulta la vista INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT.

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

    Ir a BigQuery

  2. En el editor de consultas, escribe la siguiente oración:

    SELECT
      capacity_commitment_id
    FROM
      `region-LOCATION`.INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT
    WHERE
      project_id = 'ADMIN_PROJECT_ID'
      AND slot_count = 100;

    Reemplaza lo siguiente:

  3. Haz clic en Ejecutar.

Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta 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

Reemplaza lo siguiente:

Actualizar compromisos de capacidad

Puedes realizar las siguientes actualizaciones en un compromiso de capacidad:

  • Actualiza el plan de renovación del compromiso
  • Convertir un compromiso en un plan de compromiso de mayor duración.
  • Dividir un compromiso en dos compromisos.
  • Combinar dos compromisos en un solo compromiso.

Permisos necesarios

Para actualizar los compromisos de capacidad, necesitas el siguiente permiso de Identity and Access Management (IAM):

Cada una de los siguientes roles predefinidos de IAM incluye este permiso:

  • BigQuery Admin
  • BigQuery Resource Admin

Para obtener más información de los roles de IAM en BigQuery, consulta Funciones y permisos predefinidos.

Renueva un compromiso

Los compromisos anuales tienen un plan de renovación que especificas cuando creas o cambias a un compromiso anual. Puedes cambiar el plan de renovación del compromiso anual en cualquier momento antes de su fecha de finalización.

Console

Puedes cambiar el plan de renovación de un compromiso anual de la siguiente manera:

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

    Ir a BigQuery

  2. En el panel de navegación, ve a la sección Administración de capacidad.

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

  4. Busca el compromiso que deseas editar.

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

  6. Selecciona el nuevo plan de renovación.

bq

Para cambiar la opción de 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

Reemplaza lo siguiente:

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.

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

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

Reemplaza lo siguiente:

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

    Esto se aplica solo si PLAN_TYPE es ANNUAL.

  • COMMITMENT_ID: El ID del compromiso

    Para obtener el ID, consulta Ve los compromisos comprados.

Divide un compromiso

Puedes dividir el compromiso en dos compromisos. Esto puede ser útil si deseas renovar una parte de un compromiso. Por ejemplo, si tienes un compromiso anual de 1,000 ranuras, puedes separar 300 ranuras en un compromiso nuevo y dejar 700 ranuras en el compromiso original. Luego, puedes renovar 700 ranuras con frecuencia anual y convertir 300 ranuras en un compromiso de tres años.

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

Console

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

    Ir a BigQuery

  2. En el panel de navegación, ve a la sección Administración de capacidad.

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

  4. Selecciona el compromiso que deseas dividir.

  5. Haz clic en Dividir.

  6. En la página Split commitment, usa el control deslizante Configure split para seleccionar cuántas ranuras corresponden a cada división, en incrementos de 100 ranuras.

  7. Haz clic en Dividir para dividir el compromiso. El compromiso nuevo 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

Reemplaza lo siguiente:

  • ADMIN_PROJECT_ID: El ID del proyecto
  • LOCATION es la ubicación del compromiso.
  • SLOTS_TO_SPLIT es la cantidad de ranuras que deseas dividir del compromiso original y convertir en un compromiso nuevo.
  • COMMITMENT_ID: El ID del compromiso

    Para obtener el ID, consulta Ve los compromisos comprados.

Combina dos compromisos

Puedes combinar varios compromisos en uno. Todos los compromisos que se combinarán 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 extienden hasta la fecha posterior y se te cobra un importe prorrateado por esas ranuras.

Console

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

    Ir a BigQuery

  2. En el panel de navegación, ve a la sección Administración de capacidad.

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

  4. Selecciona los compromisos que deseas combinar.

  5. Haz clic en Combinar.

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

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

Reemplaza lo siguiente:

  • ADMIN_PROJECT_ID: El ID del proyecto
  • LOCATION: la ubicación de los compromisos
  • COMMITMENT1: Es el primer compromiso que se combinará
  • COMMITMENT2: Es el segundo compromiso que se combinará

Vencimiento del compromiso

Los compromisos vencen al final de su duración. No puedes borrar un compromiso mientras aún está activo. Si el plan de renovación se establece en NONE, el compromiso se borra de forma automática. De lo contrario, se renueva 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 Renueva un compromiso.

Después de renovar un compromiso, no se cambia el valor de hora de inicio. Se refiere a la hora de inicio del compromiso original. El valor de hora de finalización es la hora en la que vence el compromiso renovado. Por ejemplo, si tienes un compromiso anual creado el 13 de diciembre de 2022 y se renueva el 13 de diciembre de 2023. Si consultas los detalles del compromiso el 14 de diciembre de 2023, el valor de hora de inicio será el 13 de diciembre de 2022 y el valor de hora de finalización será el 12 de diciembre de 2024.

Las ranuras de referencia siempre se cobran. Si un compromiso de capacidad se vence, es posible que debas ajustar de forma manual la cantidad de ranuras del modelo de referencia en tus reservas para evitar cargos no deseados. Por ejemplo, considera que tienes un compromiso de 1 año con 100 ranuras y una reserva con 100 ranuras de modelo de referencia. El compromiso vence y no tiene un plan de renovación. Una vez que vence el compromiso, pagas por 100 ranuras de referencia en la tarifa de prepago.

Controla la creación de compromisos de capacidad

Puedes usar las políticas de denegación de IAM para tener un control adicional sobre quién puede crear compromisos de capacidad.

Las políticas de denegación se pueden crear para un conjunto de usuarios o 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 la principal “lucian@example.com”:

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

Luego, esta política se puede adjuntar 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 IAM, por lo que incluso un usuario con el rol bigquery.admin no podrá crear un compromiso, a menos que la política se borre o se modifique.

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

Soluciona problemas de compromisos de capacidad

En esta sección, se describen los pasos de solución de problemas que pueden resultarte útiles si tienes problemas para usar las reservas de BigQuery.

Las ranuras compradas están pendientes

Las ranuras están sujetas a la capacidad disponible. Cuando compras compromisos de ranuras y BigQuery los asigna, la columna Estado muestra una marca de verificación. Si BigQuery no puede asignar las ranuras solicitadas de inmediato, la columna Estado permanece pendiente. Es posible que tengas que esperar varias horas para que las ranuras estén disponibles. Si necesitas acceder a las ranuras con anterioridad, prueba los siguientes pasos:

  1. Borra el compromiso pendiente.
  2. Compra un compromiso nuevo con una cantidad menor de ranuras. Según la capacidad, el compromiso más pequeño podría activarse de inmediato.
  3. Compra las ranuras restantes como un compromiso independiente. Estas ranuras podrían mostrarse como pendientes en la columna Estado, pero suelen activarse en pocas horas.
  4. Opcional: Sí ambos compromisos están disponibles, puedes combinarlos en un solo compromiso, siempre que compres el mismo plan para ambos.

Si un compromiso de ranuras falla o demora mucho tiempo en completarse, considera usar precios según demanda de manera temporal. Con esta solución, te recomendamos ejecutar consultas críticas en un proyecto diferente que no esté asignado a ninguna reserva, o es posible que debas quitar la asignación del proyecto por completo.