Información sobre las ranuras
Una ranura de BigQuery es una unidad de procesamiento virtual que usa BigQuery para ejecutar consultas de SQL, código de Python o otros tipos de trabajos. Durante la ejecución de una consulta, BigQuery determina automáticamente cuántas ranuras usa la consulta. La cantidad de ranuras que se usan depende de la cantidad de datos que se procesan, la complejidad de la consulta y la cantidad de ranuras disponibles. En general, el acceso a más ranuras te permite ejecutar más consultas simultáneas y tus consultas complejas pueden ejecutarse con mayor rapidez.
Precios según demanda y basados en la capacidad
Si bien todas las consultas usan ranuras, tienes dos opciones para que se te cobre el uso: el modelo de precios según demanda o el modelo de precios basado en la capacidad.
De forma predeterminada, se te cobra según el modelo a pedido. Con este modelo, se te cobra por la cantidad de datos procesados (medidos en TiB) por cada consulta. Los proyectos que usan el modelo según demanda están sujetos a límites de ranuras por proyecto y por organización con capacidad de aumento de actividad transitorio. Para la mayoría de los usuarios del modelo según demanda, los límites de capacidad de ranuras son más que suficientes. Sin embargo, según tu carga de trabajo, el acceso a más ranuras podría mejorar el rendimiento de las consultas. Para verificar el uso de ranuras de tu cuenta, consulta Supervisa el estado, el uso de recursos y los trabajos.
Con el modelo basado en la capacidad, pagas por la capacidad de ranuras asignada a tus consultas a lo largo del tiempo. Este modelo te brinda un control explícito sobre la capacidad total de ranuras. Eliges de forma explícita la cantidad de ranuras que usarás a través de una reserva. Puedes especificar la cantidad de ranuras en una reserva como una cantidad de referencia que siempre se asigna o como una cantidad con ajuste de escala automático que se asigna cuando es necesario. Las reservas con ranuras de ajuste de escala automático escalan su capacidad para satisfacer tus demandas de carga de trabajo. BigQuery asigna ranuras a medida que cambian las cargas de trabajo. Esto te permite configurar la cantidad de ranuras en una reserva según el rendimiento o la naturaleza crítica de la carga de trabajo que usa la reserva.
Ejecución de consultas mediante ranuras
Cuando BigQuery ejecuta un trabajo de consulta, convierte la instrucción de SQL en un plan de ejecución que consta de una serie de etapas de consulta. A su vez, las etapas se componen de conjuntos de pasos de ejecución. BigQuery usa una arquitectura en paralelo distribuida para ejecutar consultas. Las etapas modelan las unidades de trabajo que se pueden ejecutar en paralelo. Los datos se pasan entre las etapas con una arquitectura aleatoria distribuida, que se analiza con más detalle en esta Google Cloud entrada de blog.
La ejecución de consultas de BigQuery es dinámica. Un plan de consultas se puede modificar mientras se procesa la consulta. La distribución del trabajo se puede optimizar para la distribución de datos a medida que se agregan etapas. Además, la capacidad para la ejecución de una consulta puede cambiar a medida que otras consultas comienzan o finalizan, o a medida que el escalador automático agrega ranuras a una reserva.
BigQuery puede ejecutar varias etapas de forma simultánea, usar la ejecución especulativa para acelerar una consulta y volver a crear particiones de forma dinámica de una etapa para lograr una paralelización óptima.
Ahorro de recursos de ranura
Si una consulta solicita más ranuras que las disponibles, BigQuery pone en cola las unidades de trabajo individuales y espera a que las ranuras estén disponibles. A medida que se avanza en la ejecución de la consulta y se liberan las ranuras, estas unidades de trabajo en cola se seleccionan de forma dinámica para su ejecución.
BigQuery puede solicitar cualquier cantidad de ranuras para una etapa en particular de una consulta. La cantidad de ranuras solicitadas no está relacionada con la cantidad de capacidad que adquieres, sino que es una indicación del factor de mejor paralelización que elige BigQuery para esa etapa. Las unidades de trabajo se ponen en cola y se ejecutan a medida que van quedando ranuras disponibles.
Cuando la demanda de consultas supere la cantidad de ranuras a las que te comprometiste, no se te cobrará por las ranuras adicionales ni por las tarifas adicionales a pedido. Las unidades de trabajo individuales se ponen en cola.
Por ejemplo,
- Una etapa de consulta solicita 2,000 ranuras, pero solo 1,000 están disponibles.
- BigQuery consume las 1,000 ranuras y pone en cola el resto.
- A partir de esto, si 100 ranuras terminan su trabajo, seleccionan de forma dinámica 100 unidades de trabajo de las 1,000 unidades de trabajo en cola. Quedan 900 unidades de trabajo en cola.
- Si 500 ranuras terminan su trabajo, seleccionan de forma dinámica 500 unidades de trabajo de las 900 unidades de trabajo en cola. Quedan 400 unidades de trabajo en cola.
Si la carga de trabajo requiere más ranuras de las que están disponibles para la reserva, el tiempo de ejecución del trabajo puede aumentar a medida que los trabajos esperan a que las ranuras estén disponibles. Esto se conoce como contención de ranuras. La contención de ranuras puede aumentar si la demanda de la carga de trabajo es mucho mayor que las ranuras disponibles para la reserva.
Priorización de la capacidad
Cuando BigQuery experimenta una alta demanda de recursos de ranuras en una región específica, administra la contención priorizando la capacidad. Esta priorización garantiza que los clientes con modelos de capacidad de nivel superior se vean menos afectados. El sistema prioriza la capacidad en el siguiente orden:
- Capacidad comprometida y comparativa de las ediciones Enterprise y Enterprise Plus
- Capacidad con ajuste de escala automático de Enterprise Plus.
- Capacidad con ajuste de escala automático de la edición Enterprise.
- Edición estándar y capacidad a pedido.
En caso de contención en una región, es más probable que las solicitudes de capacidad de la edición Estándar y de capacidad a pedido experimenten demoras en el acceso, ya que el sistema asigna recursos primero a las ediciones de nivel superior.
Programación equilibrada en BigQuery
BigQuery asigna la capacidad de ranuras dentro de una sola reserva mediante un algoritmo llamado programación equilibrada.
El programador de BigQuery aplica el uso compartido equitativo de ranuras entre proyectos con consultas en ejecución dentro de una reserva y, luego, dentro de los trabajos de un proyecto determinado. El programador proporciona equidad eventual. Durante períodos breves, algunos trabajos pueden obtener un porcentaje desproporcionado de ranuras, pero el programador lo corregirá con el tiempo. El objetivo del programador es encontrar un equilibrio entre expulsar de forma agresiva las tareas en ejecución (lo que da como resultado una pérdida de tiempo de ranura) y ser demasiado tolerante (lo que da como resultado que los trabajos con tareas de larga duración obtengan un porcentaje desproporcionado de el tiempo de la ranura).
La programación equilibrada garantiza que cada consulta tenga acceso a todas las ranuras disponibles en cualquier momento, y la capacidad se vuelve a asignar de forma dinámica y automática entre las consultas activas a medida que la capacidad de cada consulta exige un cambio. Las consultas completas y nuevas se envían para su ejecución en función de las siguientes condiciones:
- Cada vez que se envía una consulta nueva, la capacidad se vuelve a asignar de forma automática entre las consultas que se ejecutan. Las unidades de trabajo individuales se pueden detener, reanudar y poner en cola con facilidad a medida que va quedando disponible una mayor capacidad para cada consulta.
- Cada vez que se completa una consulta, la capacidad que utiliza esa consulta va quedando disponible de forma automática e inmediata para las demás consultas.
- Cada vez que la capacidad de una consulta exige una modificación debido a los cambios en el DAG dinámico de la consulta, BigQuery vuelve a evaluar de forma automática la capacidad disponible para esta y todas las demás consultas, y vuelve a asignar o detiene las ranuras según sea necesario.
Según la complejidad y el tamaño, es posible que una consulta no necesite todas las ranuras a las que tiene derecho o que pueda necesitar más. BigQuery garantiza de forma dinámica que, con una programación equilibrada, todas las ranuras se pueden usar en cualquier momento.
Si un trabajo importante necesita más ranuras de las que recibe del programador con regularidad, considera crear una reserva adicional con la cantidad requerida de ranuras y asignar el trabajo a esa reserva.
Como ejemplo de programación justa, supongamos que tienes la siguiente configuración de reserva:
- Reserva
A, que tiene 1,000 ranuras de modelo de referencia sin ajuste de escala automático - Proyecto
Ay proyectoB, que están asignados a tu reserva
Situación 1: En el proyecto A, ejecutas la consulta A (una consulta simultánea) que requiere un uso elevado de ranuras, y en el proyecto B ejecutas 20 consultas simultáneas. Aunque hay un total de 21 consultas que usan la reserva A, la distribución de ranuras es la siguiente:
- El proyecto
Arecibe 500 ranuras y la consultaAse ejecuta con 500 ranuras. - El proyecto
Brecibe 500 ranuras que se comparten entre sus 20 consultas.
Situación 2: En el proyecto A, ejecutas la consulta A (una consulta simultánea) que requiere 100 ranuras para ejecutarse, y en el proyecto B, ejecutas 20 consultas simultáneas.
Dado que la consulta A no requiere el 50% de la reserva, la distribución de ranuras es la siguiente:
- El proyecto
Arecibe 100 ranuras, y la consultaAse ejecuta con 100 ranuras. - El proyecto
Brecibe 900 ranuras que se comparten entre sus 20 consultas.
A la inversa, considera la siguiente configuración de reserva:
- Reserva
B, que tiene 1,000 ranuras de modelo de referencia sin ajuste de escala automático. - 10 proyectos, todos asignados a la reserva
B
Si se supone que los 10 proyectos ejecutan consultas que tienen una demanda de ranuras suficiente, cada proyecto recibe 1/10 de las ranuras totales de la reserva (o 100 ranuras), independientemente de la cantidad de consultas que se ejecutan en cada proyecto.
Cuotas y límites de ranuras
Los límites y las cuotas de ranuras proporcionan una protección para BigQuery. Los diferentes modelos de precios usan diferentes tipos de cuotas de espacios, como se indica a continuación:
Modelo de precios según demanda: Estás sujeto a un límite de ranuras por proyecto y organización con capacidad de aumento de actividad transitorio. Según tus cargas de trabajo, el acceso a más ranuras puede mejorar el rendimiento de las consultas.
Modelo de precios basado en la capacidad: Las cuotas y los límites de las reservas definen la cantidad máxima de ranuras que puedes asignar en todas las reservas de una ubicación. Si usas el ajuste de escala automático, la suma de los tamaños máximos de tus reservas no puede exceder este límite. Solo se te facturarán los compromisos y las reservas, no las cuotas. Si deseas obtener información para aumentar la cuota de tus ranuras, consulta Solicita un aumento de la cuota.
Para verificar cuántas ranuras usas, consulta Supervisión de BigQuery.
Ranuras inactivas
En un momento determinado, es posible que algunas ranuras estén inactivas. Esto puede incluir lo siguiente:
- Compromisos de ranuras que no están asignados a ninguna referencia de reserva.
- Las ranuras que se asignaron a un modelo de referencia de reserva, pero no se encuentran en uso.
Las ranuras inactivas no se aplican cuando se usa el modelo de precios según demanda.
De forma predeterminada, las consultas que se ejecutan en una reserva usan ranuras inactivas de otras reservas dentro de la misma región y proyecto de administración de forma automática. BigQuery asigna de inmediato las ranuras inactivas a una reserva asignada cuando se necesitan. Las ranuras inactivas que usa otra reserva se interrumpen con rapidez si la reserva original las requiere. Es posible que, durante un período breve, veas que el consumo total de ranuras supera la cantidad máxima que especificaste en todas las reservas, pero no se te cobrará por este uso adicional de ranuras.
Por ejemplo, supongamos que tienes la siguiente configuración de reservas:
project_ase asigna areservation_a, que tiene 500 ranuras de modelo de referencia sin ajuste de escala automático.project_bse asigna areservation_b, que tiene 100 ranuras de modelo de referencia sin ajuste de escala automático.- Ambas reservas están en la misma región y el mismo proyecto administrativo, y no hay otros proyectos asignados a ellas.
Ejecutas query_b en project_b. Si no se ejecuta ninguna consulta en project_a, query_b tiene acceso a las 500 ranuras inactivas de reservation_a. Mientras query_b aún se está ejecutando, puede usar hasta 600 ranuras: 100 ranuras de modelo de referencia más 500 ranuras inactivas.
Mientras se ejecuta query_b, supongamos que ejecutas query_a en project_a, que puede usar 500 ranuras.
- Como tienes 500 ranuras de modelo de referencia reservadas para
project_a,query_ase inicia de inmediato y se le asignan 500 ranuras. - La cantidad de ranuras asignadas a
query_bdisminuye rápidamente a 100 ranuras de referencia. - Las consultas adicionales que se ejecutan en
project_bcomparten esas 100 ranuras. Si las consultas posteriores no tienen suficientes ranuras para comenzar, se ponen en cola hasta que se completen las consultas que se están ejecutando y las ranuras estén disponibles.
En este ejemplo, si project_b se asignó a una reserva sin ranuras de referencia ni ajuste de escala automático, entonces query_b no tendría ranuras después de que query_a comience a ejecutarse. BigQuery detendría query_b hasta que haya ranuras inactivas disponibles o se agote el tiempo de espera de la consulta. Las consultas adicionales en project_b se pondrán en cola hasta que haya ranuras inactivas disponibles.
Para asegurarte de que una reserva solo use sus ranuras aprovisionadas, configura ignore_idle_slots como true. Sin embargo, las reservas que tienen ignore_idle_slots
configurado como true pueden compartir sus ranuras inactivas con otras reservas.
No puedes compartir ranuras inactivas entre reservas de ediciones diferentes. Solo puedes compartir las ranuras del modelo de referencia o las ranuras confirmadas. Las ranuras con ajuste de escala automático pueden estar disponibles temporalmente, pero no se pueden compartir como ranuras inactivas para otras reservas, ya que pueden reducir la escala verticalmente.
Siempre que ignore_idle_slots sea falso, una reserva puede tener un recuento de ranuras de 0 y aun así tener acceso a las ranuras sin usar. Si solo usas la reserva default,
desactiva ignore_idle_slots como práctica recomendada. Luego, puedes
asignar un proyecto o
una carpeta
a esa reserva y solo usará las ranuras inactivas.
Las asignaciones de tipo ML_EXTERNAL son una excepción en cuanto a que las ranuras que usan
los trabajos de creación de modelos externos de BigQuery ML que no son interrumpibles. Las
ranuras en una reserva con tipos de asignación ML_EXTERNAL y QUERY
solo están disponibles para otros trabajos de consulta cuando las tareas ML_EXTERNAL no ocupan
las ranuras. Además, estos trabajos no pueden usar ranuras inactivas de otras
reservas.
Equidad basada en reservas
Con la equidad basada en reservas, BigQuery prioriza y asigna las ranuras inactivas de manera equitativa en todas las reservas dentro del mismo proyecto de administrador, independientemente de la cantidad de proyectos que ejecutan trabajos en cada reserva. Cada reserva recibe una proporción similar de la capacidad disponible en el grupo de ranuras inactivas y, luego, sus ranuras se distribuyen de manera equitativa entre sus proyectos. Esta función solo es compatible con las ediciones Enterprise o Enterprise Plus.
En el siguiente gráfico, se muestra cómo se distribuyen las ranuras inactivas sin la equidad basada en reservas habilitada:
En este gráfico, las ranuras inactivas se comparten de forma equitativa entre los proyectos.
Sin la equidad basada en reservas habilitada, las ranuras inactivas disponibles se distribuyen de manera uniforme entre los proyectos dentro de las reservas.
En el siguiente gráfico, se muestra cómo se distribuyen las ranuras inactivas con la equidad basada en reservas habilitada:
En este gráfico, las ranuras inactivas se comparten de forma equitativa entre las reservas, no entre los proyectos.
Con la equidad basada en reservas habilitada, las ranuras inactivas disponibles se distribuyen de manera equitativa entre las reservas.
Cuando habilites la equidad basada en reservas, revisa el consumo de recursos para administrar la disponibilidad de ranuras y el rendimiento de las consultas.
Evita depender únicamente de las ranuras inactivas para las cargas de trabajo de producción con requisitos de tiempo estrictos. Estos trabajos deben usar ranuras de referencia o con ajuste de escala automático. Recomendamos usar ranuras inactivas para trabajos de menor prioridad, ya que las ranuras se pueden interrumpir en cualquier momento.
Ajuste de escala automático de ranuras
En la siguiente sección, se analizan las ranuras de ajuste de escala automático y cómo funcionan con las reservas.
Usa las reservas de ajuste de escala automático
No es necesario que compres compromisos de ranuras antes de crear las reservas de ajuste de escala automático. Los compromisos de ranuras proporcionan una tarifa con descuento para las ranuras que se usan de forma coherente, pero son opcionales con reservas de ajuste de escala automático. Para crear una reserva de ajuste de escala automático, debes asignar a una reserva una cantidad máxima de ranuras (el tamaño máximo de la reserva). Para identificar la cantidad máxima de ranuras de ajuste de escala automático, resta el tamaño máximo de la reserva por cualquier ranura de referencia opcional asignada a la reserva.
Cuando crees reservas de ajuste de escala automático, ten en cuenta lo siguiente:
- BigQuery escala las reservas casi al instante hasta que alcanza la cantidad de ranuras necesarias para ejecutar los trabajos o hasta alcanzar la cantidad máxima de ranuras disponibles para la reserva. Las ranuras siempre se ajustan automáticamente a un múltiplo de 50.
- El aumento de la capacidad se basa en el uso real y se redondea hacia arriba al incremento de 50 ranuras más cercano.
- Las ranuras con ajuste de escala automático se cobran según los precios de procesamiento de capacidad para la edición asociada mientras se escala verticalmente. Se te cobra por la cantidad de ranuras escaladas, no por la cantidad usada. Este cargo se aplica incluso si falla el trabajo que hace que BigQuery escale verticalmente. Por este motivo, no uses el esquema de información de trabajos para hacer coincidir la facturación. En su lugar, consulta Supervisa el ajuste de escala automático con el esquema de información.
- Si bien la cantidad de ranuras siempre escala por múltiplos de 50, puede escalar más de 50 ranuras en un solo paso. Por ejemplo, si tu carga de trabajo requiere 450 ranuras adicionales, BigQuery puede intentar escalar en 450 ranuras a la vez para cumplir con el requisito de capacidad.
- BigQuery se reduce la escala verticalmente cuando las tareas asociadas con la reserva ya no necesitan la capacidad (sujeto a un mínimo de 1 minuto).
La capacidad ajustada automáticamente se retiene durante al menos 60 segundos. Este período de 60 segundos se denomina ventana de reducción. Cualquier nuevo pico de capacidad restablece el período de reducción, y trata todo el nivel de capacidad como una nueva concesión. Sin embargo, si transcurrieron 60 segundos o más desde el último aumento de capacidad y hay menos demanda, el sistema reduce la capacidad sin restablecer el período de reducción, lo que permite disminuciones consecutivas sin una demora impuesta.
Por ejemplo, si tu capacidad de carga de trabajo inicial se ajusta a 100 ranuras, el pico se retiene durante al menos 60 segundos. Si, durante ese período de reducción, tu carga de trabajo se ajusta a un nuevo pico de 200 ranuras, comenzará un nuevo período de reducción de 60 segundos. Si no hay un nuevo pico durante este período de reducción, tu carga de trabajo comenzará a reducirse al final de los 60 segundos.
Considera el siguiente ejemplo detallado: A las 12:00:00, tu capacidad inicial se ajusta a 100 ranuras y el uso dura un segundo. Ese pico se mantiene durante al menos 60 segundos, a partir de las 12:00:00. Después de que transcurren los 60 segundos (a las 12:01:01), si el uso nuevo es de 50 ranuras, BigQuery reduce la cantidad a 50 ranuras. Si, a las 12:01:02, el uso nuevo es de 0 ranuras, BigQuery vuelve a reducir la cantidad de ranuras de inmediato a 0. Una vez que finaliza el período de reducción, BigQuery puede reducir la escala varias veces de forma consecutiva sin necesidad de un nuevo período de reducción.
Para aprender a trabajar con el ajuste de escala automático, consulta Trabaja con el ajuste de escala automático de ranuras.
Usa reservas con ranuras de referencia y ajuste de escala automático
Además de especificar el tamaño máximo de reserva, puedes de manera opcional especificar una cantidad de ranuras del modelo de referencia por reserva. El modelo de referencia corresponde a la cantidad mínima de ranuras que se asignarán permanentemente a la reserva y siempre se te cobrará por ellas. Las ranuras con ajuste de escala automático solo se agregan después de que se consumen todas las ranuras del modelo de referencia (y las ranuras inactivas, si corresponde). Puedes compartir las ranuras del modelo de referencia inactivas en una reserva con otras reservas que necesiten capacidad.
Puedes aumentar la cantidad de ranuras del modelo de referencia en una reserva cada pocos minutos. Si quieres disminuir las ranuras del modelo de referencia, solo puedes hacerlo una vez por hora si cambiaste recientemente la capacidad de ranuras del modelo de referencia y estas superan las ranuras comprometidas. De lo contrario, puedes disminuir la cantidad de ranuras del modelo de referencia cada pocos minutos.
Las ranuras de referencia y de ajuste de escala automático están diseñadas para proporcionar capacidad en función de tu carga de trabajo reciente. Si prevés una gran carga de trabajo que sea muy diferente a tus cargas de trabajo recientes, te recomendamos que aumentes la capacidad del modelo de referencia antes del evento, en lugar de depender de las ranuras de ajuste de escala automático para cubrir la capacidad de la carga de trabajo. Si tienes problemas para aumentar tu capacidad de referencia, vuelve a intentarlo después de esperar 15 minutos.
Si la reserva no tiene ranuras del modelo de referencia o no está configurada para tomar prestadas ranuras inactivas de otras reservas, BigQuery intenta escalar. De lo contrario, las ranuras de referencia deben utilizarse por completo antes de realizar el ajuste.
Las reservas usan y agregan ranuras con la siguiente prioridad:
- Ranuras del modelo de referencia.
- Uso compartido de ranuras inactivas (si está habilitado). Las reservas solo pueden compartir el modelo de referencia inactivo o las ranuras confirmadas de otras reservas que se crearon con la misma edición y la misma región.
- Ranuras con ajuste de escala automático.
En el siguiente ejemplo, las ranuras se ajustan a partir de una cantidad de referencia especificada. Las reservas etl y dashboard tienen un tamaño de referencia de 700 y 300 ranuras, respectivamente.
En este ejemplo, la reserva etl puede escalar a 1,300 ranuras (700 ranuras de modelo de referencia más 600 ranuras de ajuste de escala automático). Si la reserva dashboard noestá en uso, la reserva etl puede usar las 300 ranuras de la reserva dashboard si no se ejecuta ningún trabajo allí, lo que genera un máximo de 1,600 ranuras posibles.
La reserva dashboard puede escalar a 1,100 ranuras (300 ranuras de modelo de referencia más 800 ranuras de ajuste de escala automático). Si la reserva etl está completamente inactiva, la reserva dashboard puede escalar a un máximo de 1,800 ranuras (300 ranuras de modelo de referencia más 800 ranuras de ajuste de escala automático más 700 ranuras inactivas en la reserva etl).
Si la reserva etl requiere más de 700 ranuras de modelo de referencia, que siempre están disponibles, intenta agregar ranuras mediante los siguientes métodos en orden:
- 700 ranuras del modelo de referencia.
- Uso compartido de ranuras inactivas con las 300 ranuras de referencia en la reserva
dashboardTu reserva solo comparte las ranuras de modelo de referencia inactivas con otras reservas que se crean con la misma edición. - Escala 600 ranuras adicionales hasta alcanzar el tamaño máximo de reserva.
Cómo usar los compromisos de ranuras
En el siguiente ejemplo, se muestran las ranuras con ajuste de escala automático que usan compromisos de capacidad.
Al igual que los modelos de referencia de reserva, los compromisos de ranuras te permiten asignar una cantidad fija de ranuras que están disponibles para todas las reservas. A diferencia de las ranuras de referencia, no se puede reducir un compromiso durante el plazo. Los compromisos de ranuras son opcionales, pero pueden ahorrar costos si se requieren ranuras del modelo de referencia por períodos prolongados. Los compromisos de ranuras se usan para cubrir las ranuras de referencia de tus reservas. Luego, toda capacidad de ranuras sin usar se comparte como ranuras inactivas en otras reservas. Los compromisos de ranuras no se aplican a las ranuras de ajuste de escala automático. Para asegurarte de recibir la tarifa con descuento por las ranuras comprometidas, verifica que tus compromisos de ranuras sean suficientes para cubrir las ranuras de referencia.
En este ejemplo, se te cobra una tarifa predefinida por las ranuras de compromiso de capacidad. Se te cobra la tarifa de ajuste de escala automático por la cantidad de ranuras de ajuste de escala automático después de que se active el ajuste de escala automático y las reservas están en estado de ampliación. En el caso de la tarifa de ajuste de escala automático, se te cobra por la cantidad de ranuras escaladas, no por la cantidad usada.
En el siguiente ejemplo, se muestran las reservas cuando la cantidad de ranuras de referencia supera la cantidad de ranuras comprometidas.
En este ejemplo, hay un total de 1, 000 ranuras de referencia entre las dos reservas: 500 de la reserva etl y 500 de la reserva dashboard. Sin embargo, el compromiso solo cubre 800 espacios. En esta situación, las ranuras excedentes se cobran con la tarifa de pago por uso (PAYG).
Cantidad máxima de ranuras disponibles
Puedes calcular la cantidad máxima de ranuras que puede usar una reserva si agregas las ranuras del modelo de referencia, la cantidad máxima de ranuras para el ajuste de escala automático y cualquier ranura en los compromisos que se crearon con la misma edición y no están cubiertos por las ranuras de referencia. El ejemplo de la imagen anterior se configura de la siguiente manera:
- Un compromiso de capacidad de 1,000 ranuras anuales. Esas ranuras se asignan como ranuras de referencia en las reservas
etlydashboard. - 700 ranuras de modelo de referencia asignadas a la reserva
etl. - 300 ranuras de modelo de referencia asignadas a la reserva
dashboard. - Ranuras de ajuste de escala automático de 600 para la reserva
etl. - 800 ranuras de ajuste de escala automático para la reserva
dashboard.
Para la reserva etl, la cantidad máxima de ranuras posible es igual a las ranuras del modelo de referencia etl (700) más las ranuras del modelo de referencia dashboard (300, si todas las ranuras están inactivas), más la cantidad máxima de ranuras con ajuste de escala automático (600). Entonces,
la cantidad máxima de ranuras que la reserva etl puede usar en este ejemplo es
1,600. Este número supera la cantidad del compromiso de capacidad.
En el siguiente ejemplo, el compromiso anual excede las ranuras de referencia asignadas.
En este ejemplo, tenemos lo siguiente:
- Un compromiso de capacidad de 1,600 ranuras anuales.
- Un tamaño máximo de reserva de 1,500 (incluidas 500 ranuras de ajuste de escala automático)
- 1,000 ranuras de modelo de referencia asignadas a la reserva
etl.
La cantidad máxima de ranuras disponibles para la reserva es igual a las ranuras del modelo de referencia (1,000) más cualquier ranura inactiva comprometida que no esté dedicada a las ranuras del modelo de referencia (1,600 ranuras anuales - 1,000 ranuras de referencia = 600) más la cantidad de ranuras con ajuste de escala automático (500) Por lo tanto, la cantidad máxima de ranuras potenciales en esta reserva es de 2,100. Las ranuras con ajuste de escala automático son ranuras adicionales que se suman al compromiso de capacidad.
Prácticas recomendadas del ajuste de escala automático
Cuando uses el escalador automático por primera vez, establece la cantidad de ranuras de ajuste de escala automático en un número significativo según el rendimiento pasado y esperado. Una vez creada la reserva, supervisa de forma activa la tasa de fallas, el rendimiento y la facturación, y ajusta la cantidad de ranuras de ajuste de escala automático según sea necesario.
El escalador automático tiene un mínimo de 1 minuto antes de reducir la escala verticalmente, por lo que es importante establecer la cantidad máxima de ranuras con escalamiento automático para equilibrar el rendimiento y el costo. Si la cantidad máxima de ranuras de ajuste de escala automático es demasiado grande y tu trabajo puede usar todas las ranuras para completar un trabajo en segundos, de cualquier manera, se incurren en costos por las ranuras máximas durante todo el minuto. Si reduces la cantidad máxima de ranuras a la mitad del valor actual, tu reserva se escala a una cantidad menor y la tarea puede usar más
slot_secondsdurante ese minuto, lo que reduce el desperdicio. Para obtener ayuda para determinar los requisitos de ranuras, consulta Supervisa el rendimiento del trabajo. Como alternativa para determinar tus requisitos de ranuras, consulta Visualiza las recomendaciones de ranuras de edición.En ocasiones, el uso de ranuras puede exceder la suma del modelo de referencia y las ranuras a gran escala. No se te cobrará por el uso de ranuras que sea mayor que tu modelo de referencia, más las ranuras escaladas.
El escalador automático es más eficiente para cargas de trabajo pesadas y de larga duración, como las cargas de trabajo con varias consultas simultáneas. Evita enviar consultas de a una, ya que cada consulta ajusta la reserva, que permanecerá ajustada durante un mínimo de 1 minuto. Si envías consultas de forma continua, lo que genera una carga de trabajo constante, establecer un modelo de referencia y comprar un compromiso proporciona capacidad constante a un precio con descuento.
El ajuste de escala automático de BigQuery está sujeto a disponibilidad de capacidad. BigQuery intenta satisfacer la demanda de capacidad del cliente según el uso histórico. Para lograr garantías de capacidad, puedes establecer un modelo de referencia de ranura opcional, que es la cantidad de ranuras garantizadas en una reserva. Con los modelos de referencia, las ranuras están disponibles de inmediato y pagas por ellas, sin importar si las usas o no. Si deseas garantizar que la capacidad esté disponible para las demandas inorgánicas grandes, como los días festivos de alto tráfico, comunícate con el equipo de BigQuery con varias semanas de anticipación.
Las ranuras de referencia siempre se cobran. Si un compromiso de capacidad 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 venza el compromiso, pagarás por 100 ranuras de referencia en la tarifa de prepago.
Supervisa el ajuste de escala automático
Para obtener información sobre cómo supervisar el uso de ranuras y el rendimiento de los trabajos con el ajuste de escala automático, consulta Supervisa el ajuste de escala automático.
Uso excesivo de ranuras
Cuando un trabajo se retiene en las ranuras por demasiado tiempo, puede recibir un porcentaje injusto de ranuras. Para evitar demoras, BigQuery permite que otros trabajos tomen prestadas ranuras adicionales, lo que da como resultado períodos de uso total de las ranuras por encima de la capacidad de ranura especificada. Cualquier uso excesivo de ranuras se atribuye solo a los trabajos que reciben más del uso legítimo.
No se te facturan directamente los espacios adicionales. En cambio, los trabajos continúan ejecutándose y acumulando uso de ranuras en su porcentaje justo hasta que tu capacidad asignada cubra todo el uso excesivo. Los espacios adicionales se excluyen del uso de espacios informados, a excepción de ciertas estadísticas de ejecución detalladas.
Ten en cuenta que cierto préstamo interrumpible de ranuras puede ocurrir para reducir los retrasos futuros y proporcionar otros beneficios, como una variabilidad de los costos de ranuras y una latencia final reducidas. El préstamo de ranuras se limita a una pequeña fracción de la capacidad total de las ranuras.