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

Uso de slots de BigQuery por hora

El uso horario de slots revela los patrones intradía en sus cargas de trabajo de BigQuery. Esta consulta le muestra exactamente cuándo ocurren sus horas pico y valle, permitiendo una programación más inteligente de reservaciones y orquestación de pipelines.

Por qué importa

La mayoría de las cargas de BigQuery tienen patrones horarios predecibles — ejecuciones ETL matutinas, actividad analítica de mediodía, procesamiento por lotes vespertino. Comprender estos patrones le permite programar reservaciones para que coincidan con la demanda, escalonar pipelines para evitar contención y establecer alertas significativas para uso anómalo.

Cómo funciona

Como la versión diaria, esta consulta agrega period_slot_ms desde JOBS_TIMELINE, pero trunca a granularidad HORA y divide por milisegundos por hora (3,600,000). El relleno del calendario asegura que cada hora tenga un punto de datos.

Consulta SQL

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

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

DECLARE lookback_days INT64 DEFAULT 7;
DECLARE ms_per_hour INT64 DEFAULT 3600000;

WITH hourly_slots AS (
  SELECT
    TIMESTAMP_TRUNC(period_start, HOUR) AS hour,
    ROUND(SUM(period_slot_ms) / ms_per_hour, 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 hour
),
calendar AS (
  SELECT ts AS hour FROM UNNEST(GENERATE_TIMESTAMP_ARRAY(
    TIMESTAMP_TRUNC(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY), HOUR),
    TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), HOUR),
    INTERVAL 1 HOUR)) AS ts
)
SELECT
  c.hour,
  IFNULL(h.avg_slots, 0) AS avg_slots
FROM calendar c
LEFT JOIN hourly_slots h ON c.hour = h.hour
ORDER BY c.hour
Reemplace your-project y region-us con su proyecto GCP y la región de su dataset.

Explicación de la consulta

Mismo enfoque que la consulta diaria pero a granularidad horaria. El divisor ms_per_hour es 3,600,000. La serie temporal generada rellena huecos asegurando un conjunto de datos horario continuo para visualización.

Puntos clave

  • lightbulb

    Las horas pico a menudo coinciden con ejecuciones programadas de ETL/dbt — escalonelas para reducir la demanda de slots en pico.

  • lightbulb

    Las horas fuera de pico con uso casi nulo representan capacidad de reservación desperdiciada bajo tarificación fija.

  • lightbulb

    Identifique la hora con mayor uso promedio de slots — este es su pico P50 y la base para el dimensionamiento de Editions.

  • lightbulb

    Las horas con uso de slots muy variable entre días sugieren cargas de trabajo ad hoc que se benefician del autoscaling.

Mejores prácticas

  1. 1

    Escalone los trabajos programados a lo largo de las horas para aplanar la curva de uso de slots.

  2. 2

    Use reservaciones Editions con autoscaling para manejar picos horarios sin sobreprovisionar.

  3. 3

    Configure alertas de costo horario para detectar consultas descontroladas dentro del mismo día hábil.

  4. 4

    Ejecute trabajos por lotes pesados durante horas fuera de pico (noche / madrugada) cuando la contención de slots es menor.

¿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