Analyse des coûts BigQuery par utilisateur
Comprendre quels utilisateurs génèrent le plus de coûts BigQuery est la première étape pour maîtriser votre facture cloud. Cette requête classe chaque utilisateur par coût total à la demande sur une fenêtre temporelle configurable, vous permettant d'identifier rapidement les plus gros consommateurs.
Pourquoi c'est important
Sans attribution des coûts au niveau utilisateur, les organisations peinent souvent à identifier qui est responsable des pics de facturation inattendus. Un seul utilisateur exécutant des requêtes ad hoc non optimisées peut facilement représenter 30 à 50 % des dépenses totales d'un projet. En révélant les coûts par utilisateur, vous pouvez engager des conversations ciblées, définir des budgets et prioriser les formations.
Comment ça fonctionne
La vue INFORMATION_SCHEMA.JOBS_BY_PROJECT de BigQuery contient les métadonnées de chaque job exécuté dans un projet, y compris l'e-mail de l'utilisateur, le total des octets facturés et l'utilisation des slots. Cette requête agrège total_bytes_billed par utilisateur et le convertit en coût à la demande estimé au tarif actuel de Google de 6,25 $/Tio analysé.
Requête SQL
Fill in your details to get a ready-to-run query:
-- 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 DESCExplication de la requête
La requête collecte chaque job de requête terminé depuis INFORMATION_SCHEMA.JOBS_BY_PROJECT dans la fenêtre de rétention. Elle déduplique les jobs avec ROW_NUMBER() partitionné par job_id (BigQuery peut journaliser le même job plusieurs fois). Ensuite, elle regroupe par user_email, additionne total_bytes_billed et convertit les octets en tébioctets (division par 1024^4) avant de multiplier par le prix à la demande de 6,25 $/Tio.
Points clés
Un petit nombre d'utilisateurs représente souvent la majorité des coûts — vérifiez si les 3 premiers utilisateurs représentent plus de 50 % des dépenses totales.
Les comptes de service (dbt, Looker, Airflow) figurent fréquemment en tête de liste car ils exécutent des requêtes planifiées à grande échelle.
Les utilisateurs avec des coûts élevés mais peu de requêtes exécutent probablement des requêtes non optimisées qui analysent de grandes quantités de données.
Comparez les coûts par utilisateur semaine après semaine pour détecter les changements soudains de comportement.
Meilleures pratiques
- 1
Configurez des contrôles de coûts personnalisés BigQuery pour limiter les octets facturés par utilisateur par jour.
- 2
Exigez des clauses LIMIT ou des filtres de partition pour les requêtes interactives/ad hoc.
- 3
Utilisez des labels sur les jobs de requêtes planifiées pour séparer les coûts automatisés des coûts humains.
- 4
Partagez ce rapport avec les responsables techniques pour qu'ils puissent accompagner les membres de l'équipe sur les meilleures pratiques de requêtes.
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
Analyse des coûts BigQuery par projet
Suivez les coûts BigQuery à travers les projets GCP. Utilisez INFORMATION_SCHEMA pour comparer les dépenses au niveau projet et trouver les projets les plus coûteux.
Lire le guideAnalyse des coûts BigQuery par label
Décomposez les coûts BigQuery par labels de jobs. Attribuez les dépenses aux équipes, pipelines ou fonctionnalités grâce aux paires clé-valeur de vos jobs.
Lire le guideTop requêtes BigQuery par coût
Trouvez les requêtes BigQuery les plus coûteuses par coût à la demande. Classez les requêtes par total d'octets facturés pour identifier les principaux facteurs de coût.
Lire le guideAnalyse des coûts BigQuery par requête
Analysez le coût, l'utilisation des slots et le temps d'exécution de chaque requête individuelle. Obtenez une ventilation détaillée du coût à la demande par exécution.
Lire le guide