Get a free observability report to evaluate the potential savingsContact us →
Uso de slots3 min de lectura

Uso de slots de BigQuery por día

El uso diario de slots le da el panorama completo de su consumo de cómputo en BigQuery. Esta consulta genera una serie temporal del uso promedio de slots por día, con relleno a cero para días sin actividad, ideal para análisis de tendencias y planificación de capacidad.

Por qué importa

Las tendencias diarias revelan patrones que informan decisiones críticas: ¿Está creciendo y necesita más capacidad? ¿Los fines de semana muestran uso mínimo que podría reducirse? ¿Hay un patrón semanal que podría explotar con reservaciones programadas? Estos datos son esenciales para la transición de la tarificación bajo demanda a Editions.

Cómo funciona

La consulta lee desde INFORMATION_SCHEMA.JOBS_TIMELINE, que proporciona datos de uso de slots por segundo. Agrega period_slot_ms por día (dividiendo por milisegundos por día) para obtener el uso promedio de slots. Un CTE de calendario crea la serie temporal completa, y un LEFT JOIN rellena los huecos con cero.

Consulta SQL

Fill in your details to get a ready-to-run query:

SQL
-- Average slot consumption per day (zero-filled time series)

DECLARE lookback_days INT64 DEFAULT 14;
DECLARE ms_per_day INT64 DEFAULT 86400000;

WITH daily_slots AS (
  SELECT
    TIMESTAMP_TRUNC(period_start, DAY) AS day,
    ROUND(SUM(period_slot_ms) / ms_per_day, 2) AS avg_slots
  FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE
  WHERE period_start >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
    AND statement_type != 'SCRIPT'
  GROUP BY day
),
calendar AS (
  SELECT ts AS day FROM UNNEST(GENERATE_TIMESTAMP_ARRAY(
    TIMESTAMP_TRUNC(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY), DAY),
    TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY),
    INTERVAL 1 DAY)) AS ts
)
SELECT
  c.day,
  IFNULL(d.avg_slots, 0) AS avg_slots
FROM calendar c
LEFT JOIN daily_slots d ON c.day = d.day
ORDER BY c.day
Reemplace your-project y region-us con su proyecto GCP y la región de su dataset.

Explicación de la consulta

JOBS_TIMELINE registra period_slot_ms cada segundo. Sumar estos valores y dividir por el número de milisegundos en un día (86,400,000) da el número promedio de slots utilizados durante ese día. GENERATE_TIMESTAMP_ARRAY crea una cronología completa día a día, y LEFT JOIN asegura el relleno a cero para días sin uso.

Puntos clave

  • lightbulb

    El uso diario consistente sugiere pipelines programados — buenos candidatos para reservaciones comprometidas de Editions.

  • lightbulb

    El uso en picos con días tranquilos sugiere cargas de trabajo ad hoc — bajo demanda o Editions con autoscaling puede ser más rentable.

  • lightbulb

    Los patrones de fin de semana vs día de semana pueden informar la programación de reservaciones (reducir los fines de semana).

  • lightbulb

    Una tendencia al alza durante semanas indica cargas de trabajo en crecimiento — planifique la capacidad antes de alcanzar los límites de slots.

Mejores prácticas

  1. 1

    Use estos datos para dimensionar correctamente los slots base de Editions a su uso diario P50.

  2. 2

    Establezca los slots máximos del autoscaler para cubrir su pico diario P95.

  3. 3

    Programe trabajos ETL pesados durante horas de menor actividad para suavizar la demanda de slots.

  4. 4

    Alerte sobre días donde el uso de slots supera su máximo esperado.

¿Quiere que CloudClerk encuentre estos ahorros automáticamente?

Nuestra plataforma se conecta a su proyecto BigQuery, ejecuta estos análisis automáticamente y entrega recomendaciones de optimización impulsadas por IA — todo con sus datos completamente anonimizados.

Guías relacionadas