Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Optimisation des coûts BigQuery : réduire la facture sans sacrifier les performances

By Josh PalmerJun 30, 202621 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

En résumé : le modèle tarifaire de BigQuery a profondément changé en juillet 2023. Le forfait fixe a disparu, remplacé par trois niveaux Editions avec autoscaling des slots. Autrement dit, la plupart des guides de coûts rédigés avant 2023 sont obsolètes, et la plupart des projets d'optimisation pensés comme des chantiers ponctuels sont sous-dimensionnés pour 2026. Cet article explique comment fonctionne réellement la tarification BigQuery aujourd'hui, quelles tactiques font bouger la facture, et comment détecter les problèmes de coûts avant qu'ils n'apparaissent sur celle-ci.

La plupart des problèmes de coûts BigQuery se révèlent au mauvais moment : une ligne inattendue sur la facture du mois précédent, un responsable data qui transfère la capture d'écran d'un pic, une question de la finance à laquelle personne ne sait répondre rapidement. Quand la discussion démarre, la requête en cause a été exécutée il y a deux semaines.

Ce décalage de détection n'est pas un problème d'outillage, mais un problème structurel. BigQuery facture après coup, l'optimisation entre en concurrence avec la roadmap, et le modèle tarifaire a suffisamment évolué depuis la rédaction de la plupart des guides pour qu'une grande partie des conseils standards ne s'applique plus. Les ingénieurs qui suivent des recommandations renvoyant aux slots forfaitaires ou aux incréments d'autoscaling de 50 slots optimisent contre un modèle qui n'existe plus.

Ce guide expose ce à quoi ressemble réellement l'optimisation des coûts BigQuery en 2026 : le modèle tarifaire actuel, les tactiques qui réduisent la dépense sans dégrader les performances, et la couche d'observabilité qui rend possible une amélioration continue.

Pourquoi l'optimisation des coûts BigQuery est différente en 2026

Le point le plus important à retenir sur la tarification BigQuery en 2026, c'est la disparition du forfait fixe. Google a retiré les achats de slots forfaitaires et les Flex Slots le 5 juillet 2023, au profit d'un modèle à trois niveaux baptisé Editions : Standard, Enterprise et Enterprise Plus. La tarification à la demande reste disponible, mais le volet capacité de BigQuery fonctionne désormais autrement que ce que décrit la majorité de la documentation.

L'autoscaling des slots est le modèle de capacité par défaut sous Editions. Au lieu d'acheter un bloc fixe de slots par mois, vous configurez une baseline (le plancher conservé en permanence) et un maximum (le plafond atteignable par l'autoscaler). BigQuery ajuste la capacité entre ces deux bornes selon la demande des requêtes et facture au slot-heure plutôt qu'à un bloc engagé. Conséquence pratique : l'exposition aux coûts évolue avec l'usage, et non avec un achat prédéterminé, ce qui fait de l'optimisation une activité continue plutôt qu'une décision de provisionnement ponctuelle.

Ce changement modifie la manière dont les équipes d'ingénierie doivent aborder la question des coûts. Il élargit aussi le périmètre de ce qu'il faut suivre. L'optimisation des coûts BigQuery en 2026 implique de prendre en compte les services annexes en plus du compute principal : Cloud Composer v3 (la version 3 précisément, qui a introduit un nouveau modèle de facturation) et Dataplex génèrent des frais apparaissant sous des SKU adjacents à BigQuery et viennent gonfler le coût total d'une plateforme data. Les équipes qui cadrent une initiative de coûts ont intérêt à récupérer dès le départ les données de facturation de ces services en même temps que le compute BigQuery, plutôt que d'en faire un nettoyage à part.

Partitionner une table reste utile, mais le calcul des économies n'est pas le même sous autoscaling qu'avec un forfait fixe. Échelonner les workloads pour rester sous un seuil d'engagement de slots était le bon réflexe en 2022 ; en 2026, l'objectif est d'abord de réduire les slot-heures consommés par vos workloads, puis de dimensionner baseline et plafond pour coller aux schémas réels. L'optimisation est un réglage continu, pas un projet que l'on clôt.

Comment fonctionne réellement la tarification BigQuery

BigQuery facture deux choses indépendamment : le compute et le stockage. C'est sur le compute que doit porter l'essentiel des efforts d'optimisation, car c'est là que les coûts évoluent de manière imprévisible.

Tarification à la demande

La tarification à la demande facture au tébioctet scanné à 6,25 $ par TiB, avec le premier TiB par mois gratuit par projet. Vous n'achetez pas directement de slots ; Google alloue jusqu'à 2 000 slots partagés par projet en arrière-plan. Le mode à la demande convient bien aux équipes aux volumes de requêtes irréguliers ou faibles, aux environnements de développement et de test, et aux workloads d'analyse ad hoc aux schémas de requêtes imprévisibles. Le risque, c'est le coût de scan : une requête mal écrite contre une grande table non partitionnée peut générer une charge significative en un seul job.

Tarification Editions à base de slots

Editions facture au slot-heure : le nombre de slots rendus disponibles par votre réservation multiplié par leur durée de détention. Dans la région US, les tarifs pay-as-you-go sont de 0,04 $ par slot-heure pour Standard, 0,06 $ pour Enterprise et 0,10 $ pour Enterprise Plus. Enterprise et Enterprise Plus proposent également des engagements de slots sur 1 an et 3 ans à des tarifs préférentiels. Indépendamment de ces engagements de capacité, Google propose aussi des Committed Use Discounts (CUDs) basés sur la dépense : 10 % de remise pour un engagement de dépense d'1 an et 20 % pour 3 ans, sur tout l'usage BigQuery PAYG éligible dans une région.

L'autoscaling sous Editions évolue par incréments de 50 slots (et non 100, comme l'indiquait l'ancienne documentation) avec, par défaut, une fenêtre de facturation minimale de 60 secondes par événement d'autoscaling. Ce plancher de 60 secondes correspond à la fenêtre de scale-down de l'autoscaler, pas à une règle par requête. Une requête courte en burst qui déclenche l'autoscaling entraîne malgré tout au moins une minute de facturation sur ces slots additionnels par défaut. Google a ajouté une fonctionnalité opt-in appelée fluid scaling, désormais en disponibilité générale, qui remplace le minimum de 60 secondes par une véritable facturation à la seconde au niveau de la réservation. Les équipes aux requêtes courtes, fréquentes ou variables ont intérêt à évaluer si l'activation du fluid scaling réduit leur coût effectif au slot-heure.

Le calcul du point d'équilibre entre on-demand et Editions est plus parlant lorsqu'il s'appuie sur Enterprise Edition, la comparaison la plus pertinente pour la plupart des équipes en production : Standard Edition est plafonnée à 1 600 slots par réservation et n'inclut ni CMEK, ni BI Engine, ni les engagements pluriannuels, souvent indispensables lorsqu'on déplace des workloads prévisibles hors du on-demand. À 0,06 $ par slot-heure, 100 slots Enterprise Edition tournant en continu pendant un mois coûtent environ 4 380 $, soit l'équivalent du scan d'environ 700 TiB en on-demand à 6,25 $ par TiB. Si votre équipe scanne systématiquement moins que cela avec un timing imprévisible, le on-demand est probablement moins cher. Si vous scannez plus, ou si vos workloads se concentrent dans des fenêtres prévisibles, la tarification slot d'Editions l'emportera probablement. La seule manière fiable de calculer votre point d'équilibre réel est d'interroger INFORMATION_SCHEMA.JOBS pour obtenir le total des slot-millisecondes sur les 30 à 90 derniers jours, puis de le convertir en slot-heures.

Tarification du stockage

BigQuery propose deux modèles de facturation du stockage au niveau du dataset : logique et physique. Le stockage logique, par défaut, facture les octets non compressés. Le stockage physique facture les octets compressés et, comme BigQuery compresse les données avant facturation, le tarif brut par GiB est plus bas. Le compromis : le stockage physique exige désormais de payer le time travel et sept jours de fail-safe storage au tarif physique actif, des coûts qui ne s'appliquent pas en facturation logique. Pour les datasets à fort ratio de compression, le modèle physique reste avantageux sur le coût total ; pour d'autres, la surcharge du time travel et du fail-safe peut faire pencher la balance dans l'autre sens. Utilisez la requête de comparaison de facturation du stockage dans la bibliothèque de requêtes d'optimisation BigQuery de DoiT (github.com/doitintl/bigquery-optimization-queries) pour calculer la recommandation nette de chaque dataset avant de basculer. Le stockage actif et le stockage long terme (tables ou partitions non modifiées pendant 90 jours) appliquent des tarifs différents dans les deux modèles, le stockage long terme étant à peu près à la moitié du tarif actif. Les tables inutilisées et les anciennes partitions qui ne basculent jamais en statut long terme à cause d'écritures accessoires représentent un coût caché fréquent.

Attribution du modèle tarifaire

Un détail facile à manquer : le modèle tarifaire se choisit par affectation de réservation, pas par organisation. Différents projets ou dossiers au sein d'une même organisation Google Cloud peuvent fonctionner sur des modèles différents en simultané. Un projet de développement peut rester en on-demand pendant que les workloads de production tournent sur des slots Enterprise Edition. Cette flexibilité par projet vous évite d'avoir à prendre un engagement global tout-ou-rien pour l'organisation.

ModèleUnité de facturationTarif pay-as-you-go USUsage recommandéOn-demandTiB scanné6,25 $ / TiBWorkloads irréguliers, légers ou imprévisiblesStandard EditionSlot-heure0,04 $ / slot-hrÉquipes analytics avec un volume modéré et constant ; aucun engagement requisEnterprise EditionSlot-heure0,06 $ / slot-hrWorkloads de production nécessitant sécurité, gouvernance ou inclusion de BI EngineEnterprise PlusSlot-heure0,10 $ / slot-hrWorkloads critiques avec DR multi-région ou exigences de conformité

Les tactiques d'optimisation des coûts BigQuery qui font bouger la facture

Les tactiques ci-dessous réduisent ce que BigQuery facture, que vous soyez en on-demand ou sur Editions. En on-demand, moins d'octets scannés se traduit directement par une facture plus basse. Sur Editions, une exécution de requêtes plus efficace signifie moins de slot-heures consommées, ce qui réduit le coût de votre plafond d'autoscaling et de votre engagement baseline.

Choisir le bon modèle de facturation du stockage

La facturation physique du stockage est l'un des leviers de coûts à plus fort effet dans BigQuery, et l'un des plus fréquemment négligés. BigQuery propose deux modèles de facturation du stockage au niveau du dataset : logique (le défaut historique, facturé sur les octets non compressés) et physique (facturé sur les octets compressés). Le stockage physique coûte environ deux fois le tarif logique par GiB, mais comme BigQuery compresse les données avant facturation, le coût effectif est plus bas pour la plupart des workloads.

Les économies dépendent entièrement de votre ratio de compression. BigQuery utilise un algorithme de compression générique plutôt qu'un algorithme par colonne optimisé pour des types de données spécifiques. Les workloads aux données à forte entropie comme les logs, les flux d'événements ou les enregistrements riches en texte se compriment souvent à des ratios de 10:1 ou plus avec cet algorithme, ce qui rend le stockage physique nettement moins cher. Les workloads dominés par des types numériques à largeur fixe comme les entiers, les doubles et les flottants présentent peu de redondance structurelle exploitable par un algorithme générique, et se compriment donc mal : la facturation physique peut alors coûter plus cher que la logique. Exécutez la requête de comparaison de facturation du stockage sur votre projet avant de convertir un dataset : elle vous indiquera votre coût actuel, votre coût projeté sous l'autre modèle, et une recommandation par dataset. Le modèle se définit au niveau du dataset, pas du projet : vous pouvez donc basculer individuellement les datasets à forte valeur sans toucher au reste.

Pour les données que vous êtes légalement tenu de conserver mais que vous interrogez rarement ou jamais, envisagez plutôt d'exporter vers Google Cloud Storage Coldline ou Archive. Un dataset de rétention HIPAA sur sept ans stocké dans BigQuery génère indéfiniment des frais de stockage actif ou long terme. Les mêmes données dans un bucket GCS Archive coûtent une fraction de ce montant, restent interrogeables via des tables externes BigQuery au besoin, et sont supprimées automatiquement à l'expiration de la fenêtre de rétention si vous configurez des règles de cycle de vie.

Partitionner les tables pour scanner moins de données

Le partitionnement divise une grande table en segments plus petits, généralement par date ou par une colonne à forte cardinalité, afin que les requêtes puissent ignorer les partitions inutiles. La technique n'est efficace que lorsque les requêtes incluent un filtre qualifiant sur la colonne de partition. Une requête contre une table partitionnée qui ne filtre pas sur la clé de partition scanne la table entière, comme si le partitionnement n'existait pas.

Priorité pratique : partitionner les tables qui portent une dimension temporelle et que vos dashboards ou jobs planifiés interrogent par plages de dates. Interroger INFORMATION_SCHEMA.JOBS_BY_PROJECT filtré par total_bytes_processed fait apparaître les tables exécutant des jobs récurrents sans filtres de partition. Ce sont les pistes les plus rapides pour réduire le scan.

Clusteriser les tables pour un pruning plus fin

Le clustering organise les données d'une table en blocs selon les valeurs d'une ou plusieurs colonnes. Les requêtes qui filtrent sur ces colonnes ignorent les blocs qui ne correspondent pas, ce qui réduit les octets scannés au-delà de ce que permet le partitionnement seul. Le clustering fonctionne mieux sur des colonnes à forte cardinalité qui apparaissent fréquemment dans les clauses WHERE ou les conditions JOIN, et l'ordre des colonnes dans la définition du cluster doit refléter l'ordre des filtres des requêtes.

Partitionnement et clustering peuvent s'appliquer ensemble. La combinaison a du sens pour les grandes tables interrogées à la fois par une dimension temporelle et par une colonne de filtre secondaire, comme un ID de tenant ou un type d'événement. Le compromis : les stratégies combinées alourdissent les métadonnées de table, et les bénéfices du clustering diminuent si les requêtes ne filtrent pas systématiquement sur les mêmes colonnes dans l'ordre défini.

Filtrer tôt et sélectionner étroitement

BigQuery facture les octets scannés avant l'exécution des filtres : un SELECT * sur une table large facture donc chaque colonne, indépendamment de celles que la sortie utilise réellement. Sélectionner uniquement les colonnes nécessaires et appliquer les filtres de partition et de cluster tôt dans la requête réduit directement le volume scanné. Les sous-requêtes qui référencent des tables larges, même quand la requête extérieure ne projette que quelques colonnes, répercutent le coût complet du scan sur la facture.

Le paramètre de requête maximum_bytes_billed permet de poser un plafond strict sur le volume scanné d'une requête unique. Toute requête qui dépasserait la limite échoue immédiatement plutôt que d'aboutir et de générer un coût important. Ce paramètre joue à la fois le rôle de garde-fou en développement et de filet de sécurité en production pour les jobs où une requête qui dérape serait coûteuse.

Ajuster les baselines et plafonds des slots d'autoscaling

Sous Editions, vous contrôlez deux paramètres de slots par réservation : la baseline (slots toujours disponibles) et le maximum (le plafond atteignable par l'autoscaler). L'autoscaling ajoute de la capacité par incréments de 50 slots lorsque la demande dépasse la baseline, avec, par défaut, une fenêtre de scale-down de 60 secondes avant la libération de ces slots. Un job qui déclenche l'autoscaling, même pour une seule seconde, entraîne une minute complète de facturation sur ces 50 slots additionnels en autoscaling standard. Si vous activez le fluid scaling au niveau de la réservation, BigQuery bascule vers une véritable facturation à la seconde sans durée minimum, ce qui peut réduire les coûts jusqu'à 34 % pour les workloads aux schémas de requêtes courts ou variables, selon Google. La taille d'incrément de 50 slots reste inchangée en fluid scaling.

Un maximum trop élevé laisse des jobs en burst monter inutilement sur des plages coûteuses. Une baseline trop basse fait tourner la plupart des workloads sur la capacité autoscalée, plus chère au slot-heure que les slots de baseline engagés lorsque des engagements Enterprise ou Enterprise Plus sont en jeu. L'objectif d'optimisation est une baseline qui couvre le plancher de vos workloads en régime permanent et un plafond maximum dimensionné pour absorber les pics légitimes sans laisser de marge aux jobs qui dérapent.

Interrogez INFORMATION_SCHEMA.JOBS sur les 60 derniers jours pour cartographier l'usage concurrent réel des slots par heure de la journée. Cette distribution vous indique où placer la baseline et où le maximum doit plafonner. Pour un guide détaillé du chemin de migration depuis le on-demand, le guide de migration en cinq étapes de DoiT couvre intégralement la configuration de la réservation.

Un schéma opérationnel qui réduit les coûts sur les workloads prévisibles : redimensionner dynamiquement votre réservation autour des fenêtres ETL connues. Augmentez la baseline avant un job de transformation lourd la nuit, redescendez-la une fois le job terminé. Vous évitez ainsi de conserver des slots coûteux pendant les heures inactives qui encadrent le job. La même approche s'inverse pour les équipes qui ont besoin de marge en heures ouvrées mais tournent au minimum la nuit.

Superposer des CUDs basés sur la dépense à votre modèle tarifaire

Une fois engagé sur Editions pour un projet, un second mécanisme de remise mérite d'être évalué : les Committed Use Discounts basés sur la dépense. Ils sont distincts des engagements de capacité en slots. Au lieu de vous engager sur un nombre fixe de slots, vous vous engagez sur un montant minimum horaire de dépense BigQuery dans une région donnée, et Google applique une remise sur tout l'usage PAYG éligible couvert par cet engagement.

Taux de remise actuels : 10 % pour un engagement d'1 an, 20 % pour 3 ans. La remise s'applique automatiquement à tous les types de compute BigQuery PAYG dans la région engagée, sans allocation manuelle de slots. L'usage au-delà du montant horaire engagé est facturé au tarif PAYG standard ; l'usage en dessous engendre malgré tout le montant engagé. L'engagement étant non annulable, dimensionnez-le sur votre dépense horaire minimale attendue, et non sur la moyenne, pour éviter de payer une capacité engagée qui resterait inutilisée pendant les périodes plus calmes.

Un écueil opérationnel : les engagements de slots sous Editions se renouvellent automatiquement par défaut. Un engagement programmé pour se renouveler pour un nouveau terme de trois ans le fera silencieusement si vous ne vérifiez et ne mettez à jour le paramètre de renouvellement avant la fenêtre d'expiration. Google autorise généralement les annulations dans les sept jours suivant un renouvellement, mais pas au-delà. Vérifiez vos paramètres de renouvellement d'engagement dans le cadre de tout audit de facturation de routine.

Trancher entre on-demand et Editions projet par projet

Comme l'attribution du modèle tarifaire se fait par projet, la bonne approche est d'auditer les projets individuellement plutôt que de chercher une réponse unique pour toute l'organisation. Les projets de développement, de test et d'analyse ad hoc s'accommodent souvent du on-demand ; les pipelines ETL nocturnes, les backends de dashboards et les produits data récurrents avec une consommation de slots prévisible favorisent généralement Editions.

Le signal à surveiller : un projet dont la consommation moyenne de slots dépasse systématiquement 50 slots mérite d'être évalué pour Editions. Un projet où l'usage de pointe se concentre dans une fenêtre quotidienne prévisible, comme un job de transformation nocturne, est un excellent candidat pour un engagement de baseline. Les projets à usage volatil ou clairsemé ont intérêt à rester en on-demand, où le pool de slots partagés ne coûte rien en période d'inactivité. Pour un détail complet sur l'évaluation de la bascule, consultez le guide BigQuery Editions de DoiT et le récapitulatif sur l'autoscaling.

Mettre en cache les requêtes répétées des dashboards et outils BI avec BI Engine

Looker et DBT sont systématiquement les deux plus gros postes de coût compute BigQuery dans les environnements clients. Le schéma est le même dans les deux cas : un outil BI ou une couche de transformation interroge les mêmes tables des centaines voire des milliers de fois par jour, chaque requête scannant les mêmes données et étant facturée en conséquence. Le coût de scan s'accumule, que vous soyez en on-demand ou sur Editions.

BI Engine est la couche de cache en mémoire de BigQuery. Elle se place devant le stockage BigQuery et intercepte les requêtes qu'elle peut servir depuis le cache, renvoyant les résultats sans déclencher de scan complet. Vous réservez une quantité fixe de mémoire (facturée au GB-heure), spécifiez les tables préférées à garder au chaud, et BI Engine gère automatiquement le remplissage et l'invalidation du cache. Les requêtes servies par le cache s'exécutent plus vite et ne coûtent rien au-delà des frais de réservation.

Le calcul du ROI est simple : identifiez le compte de service qu'utilise votre outil BI, mesurez combien de données il scanne par jour et sur quelles tables, puis comparez ce coût de scan à une réservation BI Engine dimensionnée pour héberger ces tables en mémoire. Pour les workloads qui frappent les mêmes grandes tables de manière répétée avec des variations mineures de plages de dates, les frais de réservation représentent généralement une fraction du coût de scan qu'ils remplacent. Les réservations BI Engine peuvent être redimensionnées ou supprimées à la demande : vous n'êtes pas verrouillé sur un engagement fixe.

Les vues matérialisées complètent BI Engine pour les requêtes lourdes en agrégats. Si un dashboard recalcule sans cesse la même somme, moyenne ou comptage sur un grand dataset, une vue matérialisée précalcule cet agrégat et en stocke le résultat. Les requêtes en aval lisent la valeur précalculée au lieu de la recalculer à chaque exécution. Combinées au cache BI Engine, ces deux techniques éliminent l'essentiel du compute redondant qui rend les outils BI coûteux dans les environnements BigQuery.

Réduire la fréquence des jobs planifiés et récurrents

Les requêtes planifiées qui s'exécutent plus souvent que ce dont les consommateurs ont réellement besoin représentent un gaspillage direct, quel que soit le modèle tarifaire. Un dashboard rafraîchi toutes les heures mais consulté deux fois par jour génère six fois plus de coût compute que nécessaire. Un rapport qui tourne chaque nuit mais alimente une revue d'activité hebdomadaire pourrait tourner chaque semaine.

La discussion est autant organisationnelle que technique. Interroger INFORMATION_SCHEMA.JOBS filtré par fréquence de job et octets traités donne aux équipes d'ingénierie les données pour justifier une réduction de la cadence sans deviner l'impact. Les jobs à haute fréquence qui scannent de gros volumes et servent des consommateurs qui consultent rarement les résultats sont les cibles à plus fort effet. Pour un contexte plus large sur l'optimisation des coûts CloudOps, le framework de DoiT décrit la manière dont les équipes structurent ce type de travail de gouvernance continue.

Sauvegarder et supprimer les tables et partitions inutilisées

Des tables non interrogées depuis des mois continuent de générer des frais de stockage actif si elles reçoivent la moindre écriture, même accessoire, qui réinitialise l'horloge des 90 jours du stockage long terme. Les partitions de tables actives qui sortent des plages de requête utiles génèrent un coût de scan si les requêtes ne filtrent pas correctement. Les deux se traitent via des politiques d'expiration de partition et des audits de tables périodiques.

La vue INFORMATION_SCHEMA.TABLE_STORAGE de BigQuery affiche la taille des tables, la dernière modification et le nombre de lignes au niveau du projet. Les tables volumineuses, anciennes et jamais interrogées sont candidates à l'archivage ou à la suppression. Définir une expiration de partition à la création de la table évite l'accumulation à long terme de données obsolètes sans nécessiter de nettoyage manuel récurrent.

Comment détecter les problèmes de coûts BigQuery avant qu'ils n'apparaissent sur la facture

Le défi structurel de l'observabilité des coûts BigQuery, c'est que l'outillage standard fournit un historique, pas des alertes. Cloud Monitoring et INFORMATION_SCHEMA disent ce qui s'est passé ; ils n'interrompent pas un traitement coûteux en cours et ne signalent pas les anomalies à mesure qu'elles apparaissent.

Plusieurs contrôles natifs rapprochent toutefois d'une détection proactive. Le paramètre maximum_bytes_billed au niveau de la requête empêche les requêtes isolées qui dérapent d'aboutir. Les alertes d'usage de slots dans Cloud Monitoring se déclenchent lorsque la consommation de slots d'une réservation franchit un seuil, révélant une charge inattendue même si la requête elle-même paraît normale. Cloud Functions ou Cloud Workflows permettent d'implémenter une logique d'alerte plus sophistiquée, par exemple déclencher une notification quand la consommation de slots d'un projet spécifique dépasse sa moyenne glissante d'une marge configurable.

Surveiller l'egress inter-région entre compute et stockage

Google a récemment déprécié le label multi-region dans BigQuery, qui était de longue date un abus de langage. Ce qu'on appelait la multi-region US est physiquement hébergée à us-central-1 la grande majorité du temps ; ce qu'on appelait la multi-region EU se trouve généralement à europe-west-4. Si votre dataset réside dans une région unique comme us-east-1 et que votre compute tourne contre la région US, ou inversement, Google vous facture un egress inter-région à chaque lecture. Ces frais apparaissent comme des lignes distinctes dans la console de facturation sous des SKU que la plupart des ingénieurs ne reconnaissent pas immédiatement comme de l'egress.

Méthode de détection : cherchez dans votre export de facturation les SKU correspondant au motif General Data Transfer Networking Traffic for Google Cloud Cross Region/Inter Region. L'apparition de ce SKU dans votre export confirme la présence d'egress inter-région. Pour en tracer la source, repérez les SKU compute Analysis ou Editions à côté de SKU Storage liés à des régions différentes sur la même période de facturation. La combinaison vous indique quelle région compute lit depuis quelle région storage. Le correctif est simple : co-localiser stockage et compute dans la même région.

Vérifier les frais inattendus de Dataplex et de l'API Data Lineage

Dataplex et l'API Data Lineage génèrent des frais qui apparaissent sous les SKU Dataplex dans la console de facturation, et de nombreuses équipes les supportent sans réaliser que les services sont actifs. Dataplex peut être activé automatiquement via des intégrations, des configurations de dataset ou des fonctionnalités d'essai, et il continue de scanner et de cataloguer des données en arrière-plan, que le catalogue soit activement utilisé ou non. L'API Data Lineage, même activée indépendamment de Dataplex, peut déclencher la facturation Dataplex dans certaines configurations.

Si vous voyez des frais Dataplex Premium Processing Unit dans votre export de facturation alors que votre équipe n'utilise pas activement Dataplex pour la découverte de données, le lineage ou la gouvernance, auditez les API activées et vérifiez si des intégrations les ont déclenchées. Désactiver l'API Dataplex et l'API Data Lineage dans les projets où elles ne sont pas nécessaires élimine totalement les frais d'arrière-plan. Plusieurs outils gratuits et open source couvrent le lineage des données sans déclencher la facturation Dataplex.

Détecter les anomalies au niveau du job, pas seulement au niveau de la réservation

La lacune de l'outillage natif, c'est la détection d'anomalies au niveau du job. Cloud Monitoring opère au niveau de la réservation : il peut signaler que l'usage de slots a fait un pic, mais pas quel job en est la cause, à quel projet il appartient, ni si le schéma est un événement ponctuel ou une régression récurrente. Passer d'un pic de slots au job responsable suppose un recoupement manuel avec INFORMATION_SCHEMA.JOBS, qui prend un temps dont l'équipe ne dispose généralement pas sur le moment.

Combler cet écart impose d'interroger INFORMATION_SCHEMA.JOBS de façon planifiée, de comparer les slot-millisecondes et les octets traités de chaque job à sa moyenne historique glissante, et d'alerter quand un job dévie au-delà d'un seuil configurable. L'équipe field data engineering de DoiT peut implémenter cette couche de détection pour les équipes qui en ont besoin, sans la charge de construire et de maintenir le pipeline en interne. Pour en savoir plus sur la détection des pics de coûts avant qu'ils n'atteignent la facture, consultez l'article de DoiT sur la détection des pics de coûts BigQuery.

Quand automatiser l'optimisation des coûts BigQuery

L'optimisation manuelle passe à l'échelle jusqu'à un certain point. Une équipe d'ingénierie qui gère une poignée de projets BigQuery peut partitionner les tables clés, ajuster les paramètres de réservation et auditer les jobs planifiés à un rythme raisonnable. La même équipe qui gère 40 projets répartis sur plusieurs business units ne peut pas tenir la cadence du travail d'optimisation en parallèle du développement de fonctionnalités. Le backlog grossit plus vite que le travail n'avance.

L'argument en faveur de l'automatisation ne consiste pas à remplacer le jugement des ingénieurs, mais à garantir que ce jugement s'appuie sur des données actuelles plutôt que sur des audits obsolètes. La détection automatisée fait remonter les anomalies en temps réel ; les ingénieurs décident quoi en faire. Les recommandations automatisées réduisent la charge de diagnostic ; les ingénieurs valident et implémentent. La combinaison produit des temps de réponse plus rapides que l'une ou l'autre approche prise isolément.

L'équipe field data engineering de DoiT prend en charge les couches de détection et de recommandation de ce workflow, en intégrant la surveillance des coûts directement dans les pipelines existants et en faisant remonter des constats au niveau du job avec suffisamment de contexte pour agir sans investigation supplémentaire. Ce travail s'intègre au framework FinOps Google Cloud de DoiT, pour que les constats sur les coûts ne restent pas dans un dashboard à attendre qu'on les consulte.

Les équipes qui souhaitent benchmarker leur état actuel avant d'automatiser trouveront utiles le guide des KPI FinOps de DoiT et la vue d'ensemble des outils d'analyse des coûts cloud pour établir des références et choisir la bonne instrumentation.

Mettre l'optimisation des coûts BigQuery sur des bases durables

L'optimisation des coûts BigQuery en 2026 n'est pas un projet avec une date de fin. Le modèle tarifaire récompense l'attention continue : des baselines de slots qui dérivent au-dessus de l'usage réel gonflent discrètement la facture ; de nouvelles tables ajoutées sans politique de partition accumulent du coût de scan dans le temps ; des jobs planifiés ajoutés pour un cas d'usage qui n'existe plus continuent de tourner parce que personne n'a pensé à les arrêter. Le coût de la négligence s'accumule lentement et se manifeste brutalement.

Les équipes qui maîtrisent la dépense BigQuery traitent l'optimisation comme une pratique continue plutôt que comme une initiative périodique. Elles ont de la visibilité sur l'attribution des coûts au niveau du job. Elles répondent aux anomalies dans la fenêtre où elles restent traitables. Elles prennent les décisions de partitionnement et de clustering au moment de la création des tables, pas pendant les rétrospectives d'incident. Et elles disposent d'un mécanisme pour transformer les constats en actions sans créer un backlog séparé de tickets d'optimisation qui entrerait en concurrence avec le travail produit.

Les capacités field data engineering de DoiT sont conçues pour soutenir le passage de l'insight à l'exécution, en continu, sans la charge des audits manuels ni le délai des factures a posteriori. Parlez à un ingénieur DoiT du partitionnement, du clustering, du réglage des slots et de la surveillance continue des coûts sur l'ensemble de votre périmètre BigQuery.

Foire aux questions

Quand basculer du on-demand vers BigQuery Editions ?

Le signal le plus clair est une consommation de slots constante au-dessus de 50 slots. À 0,06 $ par slot-heure sur Enterprise Edition, 100 slots fonctionnant en continu pendant un mois coûtent environ 4 380 $, soit l'équivalent du scan d'environ 700 TiB en on-demand à 6,25 $ par TiB. Si votre volume mensuel de scan approche ce seuil avec un timing prévisible, Editions vous fera probablement économiser de l'argent. Interrogez INFORMATION_SCHEMA.JOBS pour obtenir le total des slot-millisecondes sur les 30 à 90 derniers jours afin de calculer votre point d'équilibre réel avant de vous engager.

Quelles sont les trois BigQuery Editions et en quoi diffèrent-elles ?

Standard Edition convient aux équipes analytics avec des workloads modérés et constants. Elle prend en charge l'autoscaling avec une tarification pay-as-you-go à 0,04 $ par slot-heure (région US) mais ne propose ni engagements pluriannuels ni partage de slots inactifs. Enterprise Edition ajoute le chiffrement CMEK, la capacité BI Engine, les snapshots de tables et des remises pour engagement de 1 an ou 3 ans, ce qui en fait l'option adaptée aux workloads de production avec des exigences de sécurité ou de gouvernance. Enterprise Plus ajoute la reprise d'activité multi-région, la sauvegarde gérée et un SLA à 99,999 %, pensé pour les déploiements critiques où l'indisponibilité a des conséquences réglementaires ou contractuelles.

Comment empêcher une seule requête de faire exploser ma facture BigQuery ?

Définissez le paramètre maximum_bytes_billed au niveau de la requête ou du job. Toute requête qui scannerait plus d'octets que la limite configurée échoue immédiatement au lieu d'aboutir et de générer le coût. Pour les projets en on-demand, ce paramètre agit comme un plafond strict de dépense par requête. Pour les projets Editions, il limite la consommation de slots en plafonnant le volume de scan qui détermine la complexité de la requête. Vous pouvez définir ce paramètre dans l'API BigQuery, la console et les bibliothèques clients, et l'imposer comme politique d'organisation via les contrôles de paramètres de requête de Google Cloud.