Get a free observability report to evaluate the potential savingsContact us →
Análisis de costos3 min de lectura

Análisis de costos de BigQuery por etiqueta

Las etiquetas de trabajos de BigQuery le permiten etiquetar consultas con metadatos clave-valor arbitrarios — nombres de equipos, IDs de pipelines, indicadores de funcionalidades o etiquetas de entorno. Esta consulta agrega costos por etiqueta para que pueda atribuir el gasto a la dimensión de negocio más relevante para su organización.

Por qué importa

La atribución de costos a nivel de usuario solo llega hasta cierto punto. En los stacks de datos modernos, una sola cuenta de servicio puede ejecutar consultas en nombre de docenas de equipos o pipelines. Las etiquetas cierran esta brecha permitiéndole etiquetar trabajos con contexto de negocio (por ejemplo, team=analytics, pipeline=revenue_report) y luego segmentar los costos en consecuencia. Sin atribución basada en etiquetas, está operando sin visibilidad sobre dónde va realmente su dinero.

Cómo funciona

BigQuery almacena etiquetas como un campo STRUCT repetido en cada trabajo. Esta consulta hace CROSS JOIN en el array de etiquetas, deduplica trabajos y luego agrega total_bytes_billed por cada par clave-valor de etiqueta. El resultado es una estimación del costo bajo demanda por combinación de etiquetas.

Consulta SQL

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

SQL
-- Break down on-demand cost by job label

DECLARE lookback_days INT64 DEFAULT 30;

WITH flattened AS (
  SELECT
    job_id,
    lbl.key AS label_key,
    lbl.value AS label_value,
    COALESCE(total_bytes_billed, 0) AS bytes_billed,
    ROW_NUMBER() OVER (PARTITION BY job_id ORDER BY end_time DESC) AS rn
  FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
  CROSS JOIN UNNEST(labels) AS lbl
  WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
    AND state = 'DONE'
    AND total_slot_ms IS NOT NULL
    AND lbl.key IS NOT NULL
),
deduplicated AS (
  SELECT label_key, label_value, bytes_billed
  FROM flattened WHERE rn = 1
)
SELECT
  label_key,
  label_value,
  COUNT(*) AS job_count,
  ROUND(SUM(bytes_billed) / POW(1024, 3), 2) AS gib_scanned,
  ROUND(SUM(bytes_billed) / POW(1024, 4) * 6.25, 2) AS estimated_cost_usd
FROM deduplicated
GROUP BY label_key, label_value
...
Reemplace your-project y region-us con su proyecto GCP y la región de su dataset.

Explicación de la consulta

La consulta hace CROSS JOIN en el campo repetido de etiquetas para aplanar una fila por etiqueta por trabajo. Deduplica con ROW_NUMBER() en job_id, luego agrupa por label_key y label_value para sumar total_bytes_billed. El costo bajo demanda se calcula a $6.25/TiB.

Puntos clave

  • lightbulb

    Si la mayoría de sus trabajos carecen de etiquetas, esta consulta solo mostrará una fracción de sus costos — comience etiquetando sus pipelines más costosos.

  • lightbulb

    Compare los costos a nivel de etiqueta mes a mes para detectar regresiones de costo introducidas por nuevas funcionalidades o cambios de pipeline.

  • lightbulb

    Etiquetas como 'environment=production' vs 'environment=staging' pueden revelar si las cargas de trabajo no productivas cuestan más de lo esperado.

  • lightbulb

    dbt agrega automáticamente etiquetas con el nombre del modelo, haciendo esta consulta especialmente potente para los equipos que usan dbt.

Mejores prácticas

  1. 1

    Aplique una política de etiquetado: requiera al menos una etiqueta 'team' y 'pipeline' en todos los trabajos programados.

  2. 2

    Use las etiquetas de consulta predeterminadas en su herramienta de orquestación (Airflow, dbt, Dataform) para etiquetar automáticamente cada trabajo.

  3. 3

    Cree un panel que rastree los costos por etiqueta a lo largo del tiempo para detectar regresiones temprano.

  4. 4

    Alerte sobre etiquetas cuyo costo semanal supere un umbral.

¿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