Comprender slots

Una ranura de BigQuery es una unidad de computación virtual que usa BigQuery para ejecutar consultas de SQL, código de Python u otros tipos de trabajos. Durante la ejecución de una consulta, BigQuery determina automáticamente cuántas ranuras utiliza la consulta. El número de slots utilizados depende de la cantidad de datos que se procesen, la complejidad de la consulta y el número de slots disponibles. Por lo general, si tienes acceso a más ranuras, puedes ejecutar más consultas simultáneas y tus consultas complejas se pueden ejecutar más rápido.

Precios bajo demanda y basados en la capacidad

Aunque todas las consultas usan ranuras, tienes dos opciones para que se te cobre por el uso: el modelo de precios bajo demanda o el modelo de precios basado en la capacidad.

De forma predeterminada, se te cobra con el modelo bajo demanda. En este modelo, se te cobra por la cantidad de datos procesados (medida en TiB) por cada consulta. Los proyectos que usan el modelo bajo demanda están sujetos a límites de slots por proyecto y por organización con capacidad de ráfaga transitoria. La mayoría de los usuarios del modelo bajo demanda consideran que los límites de capacidad de los espacios publicitarios son más que suficientes. Sin embargo, en función de tu carga de trabajo, el acceso a más ranuras puede mejorar el rendimiento de las consultas. Para comprobar el uso de las ranuras de tu cuenta, consulta Monitorizar el estado, la utilización de recursos y los trabajos.

Con el modelo basado en la capacidad, pagas por la capacidad de ranura asignada a tus consultas a lo largo del tiempo. Este modelo te permite controlar explícitamente la capacidad total de los espacios. Elige explícitamente la cantidad de ranuras que quieres usar mediante una reserva. Puedes especificar el número de espacios de una reserva como una cantidad de referencia que siempre se asigna o como una cantidad de escalado automático que se asigna cuando es necesario. Las reservas con ranuras de autoescalado aumentan o reducen su capacidad para adaptarse a las demandas de tu carga de trabajo. BigQuery asigna ranuras a medida que cambian las cargas de trabajo. Esto le permite configurar el número de ranuras de una reserva en función del rendimiento o la naturaleza crítica de la carga de trabajo que utilice la reserva.

Ejecución de consultas mediante ranuras

Cuando BigQuery ejecuta una tarea de consulta, convierte la instrucción SQL en un plan de ejecución, que consta de una serie de fases de la consulta. Las fases se componen de conjuntos de pasos de ejecución. BigQuery usa una arquitectura paralela distribuida para ejecutar consultas. Las fases modelan las unidades de trabajo que se pueden ejecutar en paralelo. Los datos se transfieren entre fases mediante una arquitectura de aleatorización distribuida, que se explica con más detalle en esta Google Cloud entrada de blog.

La ejecución de consultas de BigQuery es dinámica. Un plan de consulta 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 añaden fases. Además, la capacidad de ejecución de una consulta puede cambiar a medida que se inician o finalizan otras consultas, o a medida que el escalador automático añade ranuras a una reserva.

BigQuery puede ejecutar varias fases simultáneamente, usar la ejecución especulativa para acelerar una consulta y reparticionar dinámicamente una fase para conseguir una paralelización óptima.

Economía de recursos de ranuras

Si una consulta solicita más ranuras de las que hay disponibles, BigQuery pone en cola unidades de trabajo individuales y espera a que haya ranuras disponibles. A medida que se procesa la ejecución de la consulta y van quedando slots libres, estas unidades de trabajo puestas en cola se van recogiendo de forma dinámica para ejecutarse.

BigQuery puede solicitar cualquier número de ranuras para una fase concreta de una consulta. El número de ranuras solicitadas no está relacionado con la cantidad de capacidad que compras, sino que indica el factor de paralelización óptimo que BigQuery ha elegido para esa fase. Las unidades de trabajo se ponen en cola y se ejecutan a medida que hay ranuras disponibles.

Cuando la demanda de consultas supera las ranuras que has confirmado, no se te cobra por las ranuras adicionales ni por las tarifas adicionales bajo demanda. Tus unidades de trabajo individuales se ponen en cola.

Por ejemplo,

  1. Una fase de consulta solicita 2000 ranuras, pero solo hay 1000 disponibles.
  2. BigQuery consume las 1000 ranuras y pone en cola las otras 1000.
  3. Después, si 100 ranuras terminan su trabajo, se asignan dinámicamente 100 unidades de trabajo de las 1000 unidades de trabajo en cola. Quedan 900 unidades de trabajo en cola.
  4. Después, si 500 ranuras terminan su trabajo, se asignan dinámicamente 500 unidades de trabajo de las 900 unidades de trabajo en cola. Quedan 400 unidades de trabajo en cola.
Las ranuras de BigQuery se ponen en cola cuando la demanda supera la disponibilidad.
Ranuras de BigQuery en cola si la demanda supera la disponibilidad

Si la carga de trabajo requiere más ranuras de las que están disponibles en la reserva, el tiempo de ejecución del trabajo puede aumentar, ya que los trabajos esperan a que haya ranuras disponibles. Este fenómeno se conoce como contienda de espacios. 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 gran demanda de recursos de ranuras en una región específica, gestiona la contención priorizando la capacidad. Esta priorización asegura que los clientes con modelos de capacidad de nivel superior se vean menos afectados. El sistema prioriza la capacidad en el siguiente orden:

  1. Las bases y la capacidad comprometida de las ediciones Enterprise Plus y Enterprise.
  2. Capacidad de escalado automático de Enterprise Plus.
  3. Capacidad de escalado automático de la edición Enterprise.
  4. Edición estándar y capacidad bajo demanda.

En caso de contención en una región, es más probable que las ediciones Estándar y las solicitudes de capacidad bajo demanda experimenten retrasos en el acceso, ya que el sistema asigna recursos primero a las ediciones de nivel superior.

Programación equitativa en BigQuery

BigQuery asigna capacidad de ranuras en una sola reserva mediante un algoritmo llamado programación equitativa.

El programador de BigQuery aplica el reparto equitativo de ranuras entre los proyectos con consultas en ejecución dentro de una reserva y, a continuación, entre las tareas de un proyecto concreto. El programador proporciona equidad eventual. Durante periodos breves, algunos trabajos pueden obtener una proporción desmesurada de ranuras, pero el programador acaba corrigiéndolo. El objetivo del programador es encontrar un equilibrio entre desalojar de forma agresiva las tareas en ejecución (lo que provoca que se pierda tiempo de ranura) y ser demasiado permisivo (lo que provoca que los trabajos con tareas de larga duración obtengan una parte desproporcionada del tiempo de ranura).

La programación equitativa asegura que cada consulta tenga acceso a todos los espacios disponibles en cualquier momento, y la capacidad se reasigna de forma dinámica y automática entre las consultas activas a medida que cambian las necesidades de capacidad de cada consulta. Las consultas se completan y se envían nuevas consultas para ejecutarse en las siguientes condiciones:

  • Cada vez que se envía una consulta nueva, la capacidad se reasigna automáticamente entre las consultas en ejecución. Las unidades de trabajo individuales se pueden pausar, reanudar y poner en cola de forma correcta a medida que haya más capacidad disponible para cada consulta.
  • Cada vez que se completa una consulta, la capacidad que ha consumido se pone a disposición de todas las demás consultas de forma inmediata.
  • Cuando las demandas de capacidad de una consulta cambian debido a modificaciones en su DAG dinámico, BigQuery vuelve a evaluar automáticamente la disponibilidad de capacidad de esta y de todas las demás consultas, y reasigna y pausa las ranuras según sea necesario.
Programación equitativa de las ranuras de BigQuery entre varias consultas.
Programación equitativa en BigQuery

En función de su complejidad y tamaño, es posible que una consulta no necesite todas las ranuras a las que tiene derecho o que necesite más. BigQuery se asegura de forma dinámica de que, con una programación justa, todos los slots se puedan usar por completo en cualquier momento.

Si una tarea importante necesita constantemente más ranuras de las que recibe del programador, considera la posibilidad de crear una reserva adicional con el número de ranuras necesario y asignar la tarea a esa reserva.

Por ejemplo, supongamos que tiene la siguiente configuración de reserva:

  • Reserva A, que tiene 1000 espacios de referencia sin autoescalado
  • Los proyectos A y B, que están asignados a tu reserva

Caso 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 las ranuras es la siguiente:

  • El proyecto A recibe 500 ranuras y la consulta A se ejecuta con 500 ranuras.
  • El proyecto B recibe 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 slots para ejecutarse. En el proyecto B, ejecutas 20 consultas simultáneas. Como la consulta A no requiere el 50% de la reserva, la distribución de los espacios es la siguiente:

  • El proyecto A recibe 100 ranuras y la consulta A se ejecuta con 100 ranuras.
  • El proyecto B recibe 900 ranuras que se comparten entre sus 20 consultas.

Por el contrario, considera la siguiente configuración de reserva:

  • Reserva B, que tiene 1000 espacios base sin autoescalado.
  • 10 proyectos, todos ellos asignados a la reserva B.

Supongamos que los 10 proyectos están ejecutando consultas que tienen suficiente demanda de ranuras. En ese caso, cada proyecto recibirá 1/10 del total de las ranuras de la reserva (es decir, 100 ranuras), independientemente del número de consultas que se estén ejecutando en cada proyecto.

Cuotas y límites de los espacios publicitarios

Las cuotas y los límites de las ranuras protegen BigQuery. Los distintos modelos de precios usan diferentes tipos de cuota de espacio publicitario, como se indica a continuación:

  • Modelo de precios bajo demanda: estás sujeto a un límite de ranuras por proyecto y organización con capacidad de picos transitorios. En función de 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 el número máximo de espacios que puedes asignar a todas las reservas de una ubicación. Si usas el autoescalado, la suma de los tamaños máximos de tus reservas no puede superar este límite. Solo se te cobrará por las reservas y los compromisos, no por las cuotas. Para obtener información sobre cómo aumentar tu cuota de espacios publicitarios, consulta Solicitar un aumento de cuota.

Para comprobar cuántas ranuras estás utilizando, consulta Monitorización de BigQuery.

Espacios inactivos

En un momento dado, puede que algunas ranuras estén inactivas. Por ejemplo:

  • Compromisos de ranuras que no se han asignado a ninguna base de reserva.
  • Ranuras asignadas a una base de referencia de reserva, pero que no se están usando.

Las ranuras inactivas no se aplican cuando se usa el modelo de precios bajo demanda.

De forma predeterminada, las consultas que se ejecutan en una reserva usan automáticamente las ranuras inactivas de otras reservas de la misma región y proyecto de administración. BigQuery asigna inmediatamente los slots inactivos a una reserva asignada cuando se necesitan. Las ranuras inactivas que usaba otra reserva se pueden usar rápidamente si la reserva original las necesita. Puede que durante un breve periodo de tiempo veas que el consumo total de espacios publicitarios supera el máximo que has especificado en todas las reservas, pero no se te cobrará por este uso adicional de espacios publicitarios.

Por ejemplo, supongamos que tiene la siguiente configuración de reserva:

  • project_a se asigna a reservation_a, que tiene 500 ranuras de referencia sin autoescalado.
  • project_b se asigna a reservation_b, que tiene 100 ranuras de referencia sin autoescalado.
  • Ambas reservas están en la misma región y proyecto administrativo, y no hay otros proyectos asignados a estas reservas.

Corres query_b en project_b. Si no se está ejecutando ninguna consulta en project_a, query_b tiene acceso a las 500 ranuras inactivas de reservation_a. Mientras query_b sigue ejecutándose, puede usar hasta 600 ranuras: 100 ranuras de base 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 espacios base reservados para project_a, query_a empieza inmediatamente y se le asignan 500 espacios.
  • El número de slots asignados a query_b disminuye rápidamente hasta los 100 slots de referencia.
  • Las consultas adicionales que se ejecuten en project_b compartirán esas 100 ranuras. Si las consultas posteriores no tienen suficientes ranuras para iniciarse, se pondrán en cola hasta que se completen las consultas en ejecución y haya ranuras disponibles.

En este ejemplo, si se asignara project_b a una reserva sin ranuras de referencia ni escalado automático, query_b no tendría ranuras después de que query_a empezara a ejecutarse. BigQuery pausaría query_b hasta que haya ranuras inactivas disponibles o hasta que se agote el tiempo de espera de la consulta. Las consultas adicionales de project_b se pondrían en cola hasta que hubiera ranuras disponibles.

Para asegurarse de que una reserva solo use los espacios aprovisionados, asigne el valor true a ignore_idle_slots. Sin embargo, las reservas con ignore_idle_slots definido como true pueden compartir sus ranuras inactivas con otras reservas.

No puedes compartir ranuras inactivas entre reservas de diferentes ediciones. Solo puedes compartir las ranuras de referencia o las ranuras comprometidas. Las ranuras con escalado automático pueden estar disponibles temporalmente, pero no se pueden compartir como ranuras inactivas para otras reservas porque pueden reducirse.

Mientras ignore_idle_slots sea false, una reserva puede tener un número de espacios de 0 y seguir teniendo acceso a los espacios no utilizados. Si solo usas la default reserva, desactiva ignore_idle_slots como práctica recomendada. Después, puedes asignar un proyecto o una carpeta a esa reserva, que solo usará las ranuras inactivas.

Las asignaciones de tipo ML_EXTERNAL son una excepción, ya que las ranuras que usan las tareas de creación de modelos externos de BigQuery ML no son interrumpibles. Las ranuras de una reserva con los tipos de asignación ML_EXTERNAL y QUERY solo están disponibles para otras tareas de consulta cuando las tareas ML_EXTERNAL no las ocupan. Además, estas tareas no pueden usar las ranuras inactivas de otras reservas.

Equidad basada en reservas

Con la equidad basada en reservas, BigQuery prioriza y asigna las ranuras inactivas de forma equitativa entre todas las reservas del mismo proyecto de administrador, independientemente del número de proyectos que ejecuten tareas en cada reserva. Cada reserva recibe una parte similar de la capacidad disponible en el grupo de ranuras inactivas y, a continuación, sus ranuras se distribuyen de forma equitativa entre sus proyectos. Esta función solo está disponible en las ediciones Enterprise y Enterprise Plus.

En el siguiente gráfico se muestra cómo se distribuyen las franjas inactivas sin la función de equidad basada en reservas habilitada:

Las ranuras inactivas se comparten entre proyectos.

En este gráfico, las ranuras inactivas se comparten a partes iguales entre los proyectos.

Si la equidad basada en reservas no está habilitada, las ranuras inactivas disponibles se distribuyen de forma equitativa entre los proyectos de las reservas.

En el siguiente gráfico se muestra cómo se distribuyen las franjas inactivas cuando la asignación equitativa basada en reservas está habilitada:

Los slots inactivos se comparten entre las reservas.

En este gráfico, las ranuras inactivas se comparten a partes iguales entre las reservas, no entre los proyectos.

Si la equidad basada en reservas está habilitada, las ranuras inactivas disponibles se distribuyen equitativamente entre las reservas.

Cuando habilites la equidad basada en reservas, revisa el consumo de recursos para gestionar la disponibilidad de las ranuras y el rendimiento de las consultas.

No confíes únicamente en las ranuras inactivas para las cargas de trabajo de producción con requisitos de tiempo estrictos. Estas tareas deben usar ranuras de referencia o autoescaladas. Te recomendamos que uses las ranuras inactivas para los trabajos de menor prioridad, ya que las ranuras se pueden interrumpir en cualquier momento.

Autoescalado de ranuras

En la siguiente sección se explica cómo funcionan las ranuras de escalado automático con las reservas.

Usar reservas de ajuste automático de escala

No es necesario que compres compromisos de espacio antes de crear reservas de escalado automático. Los compromisos de espacio proporcionan una tarifa con descuento para los espacios que se usan de forma constante, pero son opcionales con las reservas de escalado automático. Para crear una reserva de escalado automático, asigna a la reserva un número máximo de ranuras (el tamaño máximo de la reserva). Para identificar el número máximo de espacios de autoescalado, resta el tamaño máximo de la reserva a los espacios de referencia opcionales asignados a la reserva.

Cuando crees reservas de escalado automático, ten en cuenta lo siguiente:

  • BigQuery escala las reservas casi al instante hasta que alcanza el número de ranuras necesarias para ejecutar las tareas o hasta que llega al número máximo de ranuras disponibles para la reserva. Los espacios publicitarios siempre se escalan automáticamente a un múltiplo de 50.
  • El aumento de la capacidad se basa en el uso real y se redondea al incremento de 50 ranuras más cercano.
  • Las ranuras con escalado automático se cobran según los precios de computación de capacidad de la edición asociada mientras se escalan. Se te cobra por el número de ranuras escaladas, no por el número de ranuras utilizadas. Este cargo se aplica aunque falle la tarea que provoca que BigQuery aumente la capacidad. Por este motivo, no utilices el esquema de información de trabajos para que coincida con la facturación. En su lugar, consulta Monitorizar el escalado automático con el esquema de información.
  • Aunque el número de ranuras siempre se escala en múltiplos de 50, puede que se escale en 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 el requisito de capacidad.
  • BigQuery reduce la escala cuando las tareas asociadas a la reserva ya no necesitan la capacidad (con un mínimo de 1 minuto).

La capacidad escalada automáticamente se conserva durante al menos 60 segundos. Este periodo de 60 segundos se denomina "ventana de reducción". Cualquier nuevo pico de capacidad restablece el periodo de reducción, y trata todo el nivel de capacidad como una nueva concesión. Sin embargo, si han pasado 60 segundos o más desde el último aumento de capacidad y hay menos demanda, el sistema reduce la capacidad sin restablecer el periodo de reducción, lo que permite que se produzcan disminuciones consecutivas sin que se imponga un retraso.

Por ejemplo, si la capacidad inicial de tu carga de trabajo se amplía a 100 ranuras, el pico se mantendrá durante al menos 60 segundos. Si, durante ese periodo de reducción, tu carga de trabajo se amplía hasta un nuevo pico de 200 ranuras, se iniciará un nuevo periodo de reducción de 60 segundos. Si no hay ningún nuevo pico durante este periodo de reducción, tu carga de trabajo empezará a reducirse al final de los 60 segundos.

Veamos un ejemplo detallado: a las 12:00:00, tu capacidad inicial se amplía a 100 espacios y el uso dura un segundo. Ese pico se mantiene durante al menos 60 segundos, a partir de las 12:00:00. Una vez transcurridos los 60 segundos (a las 12:01:01), si el nuevo uso es de 50 ranuras, BigQuery se reducirá a 50 ranuras. Si, a las 12:01:02, el nuevo uso es de 0 ranuras, BigQuery vuelve a reducir la escala inmediatamente a 0 ranuras. Una vez que haya finalizado el periodo de reducción, BigQuery puede reducir el tamaño varias veces consecutivas sin necesidad de un nuevo periodo de reducción.

Para saber cómo trabajar con el autoescalado, consulta Trabajar con ranuras de autoescalado.

Usar reservas con slots de referencia y de autoescalado

Además de especificar el tamaño máximo de la reserva, puedes especificar de forma opcional un número de referencia de espacios por reserva. La base es el número mínimo de espacios que siempre se asignarán a la reserva y por los que siempre se te cobrará. Los espacios de autoescalado solo se añaden después de que se hayan consumido todos los espacios de referencia (y los espacios inactivos, si procede). Puedes compartir las ranuras de referencia inactivas de una reserva con otras reservas que necesiten capacidad.

Puedes aumentar el número de espacios publicitarios de referencia de una reserva cada pocos minutos. Si quieres reducir tus espacios publicitarios de referencia, solo podrás hacerlo una vez por hora si has cambiado recientemente la capacidad de tus espacios publicitarios de referencia y estos superan a los espacios publicitarios comprometidos. De lo contrario, puedes reducir los espacios publicitarios básicos cada pocos minutos.

Las ranuras de referencia y de autoescalado están diseñadas para proporcionar capacidad en función de tu carga de trabajo reciente. Si prevés una carga de trabajo grande que sea muy diferente de tus cargas de trabajo recientes, te recomendamos que aumentes tu capacidad de base antes del evento en lugar de depender de las ranuras de escalado automático para cubrir la capacidad de la carga de trabajo. Si tienes problemas para aumentar tu capacidad base, vuelve a intentar la solicitud después de esperar 15 minutos.

Si la reserva no tiene ranuras de base o no está configurada para tomar prestadas ranuras inactivas de otras reservas, BigQuery intentará escalar. De lo contrario, las franjas de referencia deben utilizarse por completo antes de escalar.

Las reservas usan y añaden espacios con la siguiente prioridad:

  1. Espacios de referencia.
  2. Compartir espacios inactivos (si está habilitado). Las reservas solo pueden compartir ranuras de referencia inactivas o comprometidas de otras reservas que se hayan creado con la misma edición y la misma región.
  3. Ranuras de autoescalado.

En el siguiente ejemplo, los espacios se escalan a partir de una cantidad de referencia especificada. Las reservas de etl y dashboard tienen un tamaño base de 700 y 300 espacios, respectivamente.

Ejemplo de autoescalado sin compromisos.

En este ejemplo, la reserva etl puede ampliarse a 1300 ranuras (700 ranuras de referencia más 600 ranuras de escalado automático). Si la reserva dashboard no se está usando, la reserva etl puede usar las 300 ranuras de la reserva dashboard si no se está ejecutando ninguna tarea en ella, lo que da como resultado un máximo de 1600 ranuras posibles.

La dashboard reserva puede escalarse hasta 1100 espacios (300 espacios de referencia más 800 espacios de autoescalado). Si la reserva etl está totalmente inactiva, la reserva dashboard puede escalar hasta un máximo de 1800 espacios (300 espacios de referencia más 800 espacios de escalado automático más 700 espacios inactivos en la reserva etl).

Si la reserva de etl requiere más de 700 ranuras de referencia, que siempre están disponibles, intenta añadir ranuras mediante los siguientes métodos en orden:

  1. 700 espacios publicitarios de referencia.
  2. Compartir espacios inactivos con los 300 espacios de referencia de la reserva dashboard. Tu reserva solo comparte las ranuras de línea base inactivas con otras reservas que se hayan creado con la misma edición.
  3. Aumentar en 600 el número de espacios hasta el tamaño máximo de reserva.

Usar confirmaciones de ranuras

En el siguiente ejemplo se muestran las ranuras de escalado automático mediante compromisos de capacidad.

Reservas de autoescalado con confirmaciones de capacidad.

Al igual que las bases de referencia de las reservas, los compromisos de espacio te permiten asignar un número fijo de espacios que están disponibles para todas las reservas. A diferencia de las franjas de referencia, el compromiso no se puede reducir durante el plazo. Los compromisos de ranuras son opcionales, pero pueden ahorrar costes si se necesitan ranuras básicas durante largos periodos. Los compromisos de espacio se usan para cubrir los espacios de referencia de tus reservas. La capacidad de ranuras que no se utilice se compartirá como ranuras inactivas entre otras reservas. Los compromisos de espacio publicitario no se aplican a los espacios publicitarios con escalado automático. Para asegurarte de que recibes la tarifa con descuento de tus espacios comprometidos, comprueba que estos sean suficientes para cubrir tus espacios básicos.

En este ejemplo, se te cobra una tarifa predefinida por las ranuras de compromiso de capacidad. Se te cobra la tarifa de autoescalado por el número de ranuras de autoescalado después de que se active el autoescalado y las reservas estén en un estado de escalado. En el caso de la tarifa de autoescalado, se te cobra por el número de ranuras escaladas, no por el número de ranuras utilizadas.

En el siguiente ejemplo se muestran las reservas cuando el número de espacios de referencia supera el número de espacios comprometidos.

Las ranuras de referencia superan el número de ranuras comprometidas.

En este ejemplo, hay un total de 1000 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 este caso, los espacios adicionales se cobran según la tarifa de pago por uso.

Número máximo de ranuras disponibles

Para calcular el número máximo de espacios que puede usar una reserva, suma los espacios de referencia, el número máximo de espacios de escalado automático y los espacios de los compromisos que se hayan creado con la misma edición y que no estén incluidos en los espacios de referencia. El ejemplo de la imagen anterior se ha configurado de la siguiente manera:

  • Un compromiso de capacidad de 1000 ranuras anuales. Esas ranuras se asignan como ranuras de referencia en la reserva etl y en la reserva dashboard.
  • Se han asignado 700 slots de referencia a la reserva etl.
  • Se han asignado 300 ranuras de referencia a la reserva dashboard.
  • Autoscala las ranuras de 600 para la reserva etl.
  • Autoescalar las ranuras de 800 para la reserva dashboard.

En el caso de la reserva etl, el número máximo de ranuras posibles es igual a las etl ranuras de referencia (700) más las dashboard ranuras de referencia (300, si todas las ranuras están inactivas) más el número máximo de ranuras de escalado automático (600). Por lo tanto, el número máximo de ranuras que podría usar la reserva etl en este ejemplo es 1600. Este número supera el número del compromiso de capacidad.

En el siguiente ejemplo, el compromiso anual supera las ranuras de referencia asignadas.

Cómo calcular el número máximo de espacios disponibles en una reserva.

En este ejemplo, tenemos lo siguiente:

  • Un compromiso de capacidad de 1600 ranuras anuales.
  • Un tamaño máximo de reserva de 1500 (incluidas 500 ranuras de autoescalado).
  • Se asignan 1000 ranuras de referencia a la reserva etl.

El número máximo de ranuras disponibles para la reserva es igual a las ranuras base (1000) más las ranuras inactivas comprometidas que no se dedican a las ranuras base (1600 ranuras anuales - 1000 ranuras base = 600) más el número de ranuras de autoescalado (500). Por lo tanto, el número máximo de espacios posibles en esta reserva es 2100. Los espacios con autoescalado son espacios adicionales que se suman a la capacidad comprometida.

Prácticas recomendadas para el autoescalado

  1. Cuando uses el escalador automático por primera vez, define el número de ranuras de autoescalado en un valor significativo en función del rendimiento anterior y esperado. Una vez que se haya creado la reserva, monitoriza activamente la tasa de errores, el rendimiento y la factura, y ajusta el número de ranuras de autoescalado según sea necesario.

  2. El escalador automático tiene un mínimo de 1 minuto antes de reducir la escala, por lo que es importante definir el número máximo de ranuras con escalado automático para equilibrar el rendimiento y el coste. Si el número máximo de ranuras de escalado automático es demasiado grande y tu tarea puede usar todas las ranuras para completarse en segundos, seguirás incurriendo en costes por el número máximo de ranuras durante todo el minuto. Si reduces el número máximo de ranuras a la mitad del valor actual, tu reserva se ajustará a un número inferior y el trabajo podrá usar más slot_seconds durante ese minuto, lo que reducirá el desperdicio. Para obtener ayuda a la hora de determinar los requisitos de las ranuras, consulta Monitorizar el rendimiento de los trabajos. Como alternativa para determinar tus requisitos de ranuras, consulta Ver recomendaciones de ranuras de edición.

  3. El uso de las ranuras puede superar ocasionalmente la suma de las ranuras básicas y las escaladas. No se te cobrará por el uso de ranuras que supere tu base más las ranuras escaladas.

  4. El escalador automático es más eficiente para cargas de trabajo pesadas y de larga duración, como las que tienen varias consultas simultáneas. Evita enviar consultas de una en una, ya que cada consulta escala la reserva, que permanecerá escalada durante un mínimo de 1 minuto. Si envías consultas continuamente, lo que provoca una carga de trabajo constante, puedes definir una base y comprar una confirmación para obtener una capacidad constante a un precio con descuento.

  5. El autoescalado de BigQuery está sujeto a la disponibilidad de capacidad. BigQuery intenta satisfacer la demanda de capacidad de los clientes en función del historial de uso. Para conseguir garantías de capacidad, puedes definir una base de referencia de slots opcional, que es el número de slots garantizados de una reserva. Con las líneas de base, los espacios publicitarios están disponibles de inmediato y pagas por ellos tanto si los usas como si no. Para asegurarte de que haya capacidad disponible para grandes demandas no orgánicas, como las que se producen en festivos con mucho tráfico, ponte en contacto con el equipo de BigQuery con varias semanas de antelación.

  6. Los espacios publicitarios de referencia siempre se cobran. Si caduca un compromiso de capacidad, 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 de base. El compromiso caduca y no tiene un plan de renovación. Cuando caduque la confirmación, pagarás 100 ranuras básicas a la tarifa de pago por uso.

Monitorizar el autoescalado

Para obtener información sobre cómo monitorizar el uso de ranuras y el rendimiento de los trabajos con el autoescalado, consulta Monitorizar el autoescalado.

Uso excesivo de ranuras

Si una tarea retiene las ranuras durante demasiado tiempo, puede recibir una parte injusta de las ranuras. Para evitar retrasos, BigQuery permite que otras tareas tomen prestadas ranuras adicionales, lo que provoca que, en algunos periodos, el uso total de ranuras supere la capacidad especificada. El uso excesivo de ranuras solo se atribuye a los trabajos que reciben más de lo que les corresponde.

Los espacios publicitarios adicionales no se te facturan directamente. En su lugar, las tareas siguen ejecutándose y acumulando uso de ranuras en la parte que les corresponde hasta que todo el uso excesivo se cubra con la capacidad asignada. Las ranuras en exceso se excluyen del uso de ranuras registrado, a excepción de determinadas estadísticas de ejecución detalladas.

Ten en cuenta que se pueden tomar prestados algunos espacios de forma preventiva para reducir los retrasos futuros y ofrecer otras ventajas, como una menor variabilidad del coste de los espacios y una menor latencia de cola. El préstamo de espacios está limitado a una pequeña parte de tu capacidad total de espacios.