Analyse des coûts BigQuery par projet
Lorsque votre organisation exécute BigQuery sur plusieurs projets GCP, comprendre quel projet génère le plus de coûts est essentiel pour l'allocation budgétaire et la refacturation. Cette requête fournit une attribution des coûts au niveau projet en utilisant INFORMATION_SCHEMA.
Pourquoi c'est important
Les environnements multi-projets sont la norme dans les configurations GCP matures — projets séparés pour la production, le staging, l'analytique et la data science. Sans visibilité des coûts au niveau projet, les équipes ne peuvent pas effectuer de refacturation précise, définir des budgets significatifs ni identifier quel projet nécessite en premier une attention d'optimisation.
Comment ça fonctionne
Cette requête lit depuis INFORMATION_SCHEMA.JOBS_BY_PROJECT et regroupe les coûts par project_id. Pour une visibilité à l'échelle de l'organisation, vous exécuteriez des requêtes similaires contre JOBS_BY_ORGANIZATION (requiert un accès au niveau organisation). Le coût à la demande total de chaque projet est calculé à partir des octets facturés à 6,25 $/Tio.
Requête SQL
Fill in your details to get a ready-to-run query:
-- Aggregate on-demand cost per GCP project
DECLARE lookback_days INT64 DEFAULT 30;
WITH jobs AS (
SELECT
project_id,
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 project_id, job_id, bytes_billed FROM jobs WHERE rn = 1
)
SELECT
project_id,
COUNT(DISTINCT job_id) AS total_jobs,
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 project_id
ORDER BY estimated_cost_usd DESCExplication de la requête
La requête collecte tous les jobs de requête terminés, déduplique par job_id, regroupe par project_id et additionne total_bytes_billed. Elle compte également les jobs distincts par projet pour voir quels projets exécutent le plus de requêtes. La formule du coût à la demande est octets / 1024^4 * 6,25 $.
Points clés
Les projets de staging et de développement peuvent parfois coûter plus que la production si les ingénieurs exécutent des requêtes exploratoires non optimisées.
Les projets avec un nombre élevé de jobs mais un faible coût exécutent des requêtes efficaces — étudiez leurs modèles.
Les projets avec peu de jobs mais un coût élevé ont des requêtes individuelles coûteuses qui méritent d'être investiguées.
Croisez avec la requête par utilisateur pour voir quels utilisateurs sont responsables des coûts dans chaque projet.
Meilleures pratiques
- 1
Configurez des alertes budgétaires par projet dans la console de facturation GCP.
- 2
Utilisez des comptes de facturation séparés ou des labels pour la refacturation aux unités commerciales.
- 3
Envisagez d'utiliser BigQuery Editions avec des réservations assignées par projet pour des coûts prévisibles.
- 4
Examinez les coûts au niveau projet mensuellement et signalez tout projet avec une augmentation >20 % d'un mois à l'autre.
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 utilisateur
Identifiez les utilisateurs qui génèrent le plus de dépenses BigQuery. Interrogez INFORMATION_SCHEMA pour classer les utilisateurs par coût à la demande.
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 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 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 guide