Get a free observability report to evaluate the potential savingsContact us →
Utilisation des slots3 min de lecture

Utilisation des slots BigQuery par jour

L'utilisation quotidienne des slots vous donne une vue d'ensemble de votre consommation de calcul BigQuery. Cette requête génère une série temporelle de l'utilisation moyenne des slots par jour, avec remplissage à zéro pour les jours sans activité, idéale pour l'analyse des tendances et la planification de capacité.

Pourquoi c'est important

Les tendances quotidiennes révèlent des modèles qui éclairent des décisions critiques : Êtes-vous en croissance et avez-vous besoin de plus de capacité ? Les week-ends montrent-ils une utilisation minimale qui pourrait être réduite ? Y a-t-il un modèle hebdomadaire que vous pourriez exploiter avec des réservations planifiées ? Ces données sont essentielles pour passer de la tarification à la demande à Editions.

Comment ça fonctionne

La requête lit depuis INFORMATION_SCHEMA.JOBS_TIMELINE, qui fournit des données d'utilisation des slots par seconde. Elle agrège period_slot_ms par jour (en divisant par les millisecondes par jour) pour obtenir l'utilisation moyenne des slots. Un CTE de calendrier crée la série temporelle complète, et un LEFT JOIN remplit les lacunes à zéro.

Requête 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
Remplacez your-project et region-us par votre projet GCP et la région de votre dataset.

Explication de la requête

JOBS_TIMELINE enregistre period_slot_ms chaque seconde. En additionnant ces valeurs et en divisant par le nombre de millisecondes dans une journée (86 400 000), on obtient le nombre moyen de slots utilisés pendant cette journée. GENERATE_TIMESTAMP_ARRAY crée une chronologie complète jour par jour, et LEFT JOIN assure le remplissage à zéro pour les jours sans utilisation.

Points clés

  • lightbulb

    Une utilisation quotidienne cohérente suggère des pipelines planifiés — bons candidats pour des réservations Editions engagées.

  • lightbulb

    Une utilisation en pics avec des jours calmes suggère des charges ad hoc — la tarification à la demande ou Editions avec autoscaling peut être plus rentable.

  • lightbulb

    Les modèles week-end vs semaine peuvent informer la planification des réservations (réduire les week-ends).

  • lightbulb

    Une tendance à la hausse sur des semaines indique des charges croissantes — planifiez la capacité avant d'atteindre les limites de slots.

Meilleures pratiques

  1. 1

    Utilisez ces données pour dimensionner correctement les slots de base Editions à votre utilisation quotidienne P50.

  2. 2

    Définissez les slots max de l'autoscaler pour couvrir votre pic quotidien P95.

  3. 3

    Planifiez les jobs ETL lourds pendant les heures creuses pour lisser la demande de slots.

  4. 4

    Alertez sur les jours où l'utilisation des slots dépasse votre maximum attendu.

Voulez-vous que CloudClerk trouve ces économies automatiquement ?

Notre plateforme se connecte à votre projet BigQuery, exécute ces analyses automatiquement et fournit des recommandations d'optimisation basées sur l'IA — tout avec vos données entièrement anonymisées.

Guides associés