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
.
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):
bigquery.capacityCommitments.create
en el proyecto de administración que mantiene la propiedad de los compromisos.
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
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel de navegación, ve a la sección Administración de capacidad.
Haz clic en Crear compromiso.
En Configurar, haz lo siguiente:
- Selecciona la ubicación.
- En la sección Modelo de capacidad, selecciona el modelo de capacidad.
- Si seleccionas la opción Ajuste de escala automático, haz lo siguiente:
- 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.
- Selecciona la Duración del compromiso, que especifica tu plan de compromiso.
Si adquieres un compromiso anual, selecciona el Plan de renovación que deseas aplicar cuando venza el compromiso:
- Renovar anualmente. Cuando vence el compromiso anual, se renueva por otro año como compromiso anual.
Para obtener más información, consulta Compromisos.
Ingresa la cantidad de ranuras que deseas comprar.
Haz clic en Siguiente.
Revisa la estimación de costos de tu compra.
En Confirmar y enviar, haz lo siguiente:
- Escribe CONFIRMAR para confirmar la compra.
- Haz clic en Comprar para adquirir las ranuras.
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
.
En la consola de Google Cloud, ve a la página de BigQuery.
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 compromisoDebe 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, comoANNUAL
oTHREE_YEAR
.
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, comoANNUAL
oTHREE_YEAR
.RENEWAL_PLAN_TYPE
: Es el tipo de plan de renovación, comoNONE
,ANNUAL
oTHREE_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):
bigquery.capacityCommitments.list
en el proyecto de administración que mantiene la propiedad de los compromisos.
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
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel de navegación, ve a la sección Administración de capacidad.
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
.
En la consola de Google Cloud, vaya a la página de BigQuery.
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:
LOCATION
: la ubicación de los compromisosADMIN_PROJECT_ID
: el ID del proyecto del proyecto de administración que posee los compromisos
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:
LOCATION
: la ubicación de los compromisosADMIN_PROJECT_ID
: el ID del proyecto del proyecto de administración que posee los compromisos
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):
bigquery.capacityCommitments.update
en el proyecto de administración que mantiene la propiedad de los compromisos.
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:
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel de navegación, ve a la sección Administración de capacidad.
Haz clic en la pestaña Slot commitments.
Busca el compromiso que deseas editar.
Haz clic en
Acciones y, luego, selecciona la opción Editar plan de renovación.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:
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.PLAN_TYPE
: el tipo de plan, comoANNUAL
oTHREE_YEAR
.COMMITMENT_ID
: El ID del compromisoPara 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.
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 proyectoLOCATION
es la ubicación del compromiso.PLAN_TYPE
: el tipo de plan, comoANNUAL
oTHREE_YEAR
.RENEWAL_PLAN
: El plan de renovaciónEsto se aplica solo si
PLAN_TYPE
esANNUAL
.COMMITMENT_ID
: El ID del compromisoPara 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
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel de navegación, ve a la sección Administración de capacidad.
Haz clic en la pestaña Slot commitments.
Selecciona el compromiso que deseas dividir.
Haz clic en Dividir.
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.
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 proyectoLOCATION
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 compromisoPara 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
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel de navegación, ve a la sección Administración de capacidad.
Haz clic en la pestaña Slot commitments.
Selecciona los compromisos que deseas combinar.
Haz clic en Combinar.
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 proyectoLOCATION
: la ubicación de los compromisosCOMMITMENT1
: 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:
- Borra el compromiso pendiente.
- 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.
- 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.
- 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.