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 usuario

Entender qué usuarios generan más costos en BigQuery es el primer paso para controlar su factura en la nube. Esta consulta clasifica cada usuario por su costo total bajo demanda en una ventana de tiempo configurable, permitiéndole identificar rápidamente a los mayores consumidores.

Por qué importa

Sin atribución de costos a nivel de usuario, las organizaciones a menudo tienen dificultades para identificar quién es responsable de los picos inesperados en la factura. Un solo usuario ejecutando consultas ad hoc no optimizadas puede representar fácilmente entre el 30 y el 50% del gasto total de un proyecto. Al revelar los costos por usuario, puede mantener conversaciones específicas, establecer presupuestos y priorizar la capacitación.

Cómo funciona

La vista INFORMATION_SCHEMA.JOBS_BY_PROJECT de BigQuery contiene metadatos de cada trabajo ejecutado en un proyecto, incluyendo el correo del usuario, el total de bytes facturados y el uso de slots. Esta consulta agrega total_bytes_billed por usuario y lo convierte en un costo estimado bajo demanda usando el precio actual de Google de $6.25 por TiB analizado.

Consulta SQL

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

SQL
-- Rank users by estimated on-demand cost

DECLARE lookback_days INT64 DEFAULT 30;

WITH jobs AS (
  SELECT
    user_email,
    job_id,
    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
  WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
    AND job_type = 'QUERY'
    AND state = 'DONE'
    AND total_slot_ms IS NOT NULL
),
deduplicated AS (
  SELECT user_email, bytes_billed FROM jobs WHERE rn = 1
)
SELECT
  user_email,
  COUNT(*) AS query_count,
  ROUND(SUM(bytes_billed) / POW(1024, 4), 4) AS tib_scanned,
  ROUND(SUM(bytes_billed) / POW(1024, 4) * 6.25, 2) AS estimated_cost_usd
FROM deduplicated
GROUP BY user_email
ORDER BY estimated_cost_usd DESC
Reemplace your-project y region-us con su proyecto GCP y la región de su dataset.

Explicación de la consulta

La consulta recopila cada trabajo de consulta completado desde INFORMATION_SCHEMA.JOBS_BY_PROJECT dentro de la ventana de retención. Deduplica trabajos usando ROW_NUMBER() particionado por job_id (BigQuery puede registrar el mismo trabajo más de una vez). Luego agrupa por user_email, suma total_bytes_billed y convierte bytes a tebibytes (dividiendo por 1024^4) antes de multiplicar por el precio bajo demanda de $6.25/TiB.

Puntos clave

  • lightbulb

    Un pequeño número de usuarios a menudo representa la mayoría de los costos — verifique si los 3 principales usuarios representan más del 50% del gasto total.

  • lightbulb

    Las cuentas de servicio (dbt, Looker, Airflow) frecuentemente encabezan la lista porque ejecutan consultas programadas a escala.

  • lightbulb

    Los usuarios con costos altos pero pocas consultas probablemente ejecutan consultas no optimizadas que analizan grandes cantidades de datos.

  • lightbulb

    Compare los costos por usuario semana a semana para detectar cambios repentinos en el comportamiento.

Mejores prácticas

  1. 1

    Configure controles de costos personalizados de BigQuery para limitar los bytes facturados por usuario por día.

  2. 2

    Requiera cláusulas LIMIT o filtros de partición para consultas interactivas/ad hoc.

  3. 3

    Use etiquetas en los trabajos de consulta programados para separar costos automatizados de los generados por personas.

  4. 4

    Comparta este informe con los líderes de ingeniería para que puedan orientar a los miembros del equipo sobre las mejores prácticas de consultas.

¿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