Étapes pratiques pour l'étiquetage, la budgétisation, les alertes et le suivi des dépenses SQL warehouse sur Databricks, avec des exemples concrets.
Toutes les équipes d'analyse sont passées par là : une facture de fin de mois arrive, et un seul SQL warehouse a explosé son budget, peut-être à cause d'une ressource de calcul restée active toute la nuit, ou d'une requête ad hoc qui a fait l'objet d'une mise à l'échelle automatique pour répondre aux besoins de 80 utilisateurs Tableau lors d'une revue trimestrielle. Le coût est bien réel, mais la frustration est encore plus profonde : personne ne le savait avant qu'il ne soit trop tard.
La gestion proactive des coûts inverse ce modèle. Au lieu d'analyser les factures après coup de manière quasi chirurgicale, vous définissez des garde-fous avant même de dépenser le moindre dollar : les budgets sont associés aux SQL warehouses, aux équipes ou aux charges de travail BI. Des alertes se déclenchent aux seuils que vous choisissez, et des tableaux de bord affichent les tendances d'utilisation en temps réel, le tout sur la plateforme Databricks Data & AI Platform. Si vous êtes en pleine migration depuis un système sur site ou un autre cloud data warehouse, c'est le moment idéal pour mettre en place cette gouvernance.

Les charges de travail de data warehousing présentent des défis uniques en matière de coûts. Les SQL warehouses gèrent des charges de travail interactives et pilotées par l'humain (tableaux de bord BI, analyses ad hoc, analyses intégrées) où la demande est imprévisible et irrégulière. Une simple réunion générale de la direction qui déclenche 200 rafraîchissements simultanés de tableaux de bord peut faire grimper les coûts en quelques minutes. La plupart des organisations commencent leur parcours FinOps de la même manière : quelqu'un télécharge le fichier CSV d'utilisation du mois dernier, ouvre un tableau croisé dynamique et commence à se poser des questions. Cette approche échoue pour quatre raisons :
La gestion proactive des coûts — attribution, budgets, alertes, tableaux de bord et optimisation — répond à ces cinq points.
Avant de configurer des budgets, choisissez le bon type de SQL warehouse. Les SQL warehouses Serverless sont l'option recommandée par Databricks pour la plupart des charges de travail. Ils démarrent en quelques secondes, s'arrêtent dès que les requêtes sont terminées et permettent à la gestion intelligente des charges de travail (Intelligent Workload Management) d'allouer les ressources de calcul pour vous, de sorte que vous ne payez que pour l'exécution réelle des requêtes, et non pour l'inactivité.
Si vous migrez depuis un data warehouse cloud hérité, il s'agit d'un changement majeur. La plupart des plateformes héritées facturent les ressources de calcul toujours actives ou nécessitent des décisions de mise à l'échelle manuelles. Le Serverless élimine toute cette catégorie d'erreurs de coût.
Lumen Technologies l'a constaté de visu : la migration de deux systèmes de télécommunications essentiels d'un data warehouse sur site vers SQL Serverless a permis de réduire les coûts de calcul de 30 à 40 % et d'accélérer la vitesse des requêtes de 90 %. Le système s'adapte désormais automatiquement pour traiter environ 7 GB toutes les 10 minutes, le Serverless éliminant la « taxe de fonctionnement continu » généralement associée aux charges de travail irrégulières en temps réel.
Le framework repose sur Microsoft cinq piliers. Les quatre premiers rendent vos dépenses visibles ; le cinquième est celui qui permet de les réduire concrètement :

Vous ne pouvez pas gérer ce que vous ne pouvez pas attribuer, et avec les SQL warehouses, cela implique deux niveaux : le SQL warehouse lui-même et la requête individuelle. L'un vous indique quel SQL warehouse a dépensé l'argent ; l'autre vous indique qui l'a fait au sein de celui-ci.
Niveau 1 : Taguer le SQL warehouse
Les SQL warehouses prennent en charge les tags personnalisés sous forme de paires key:value qui se propagent dans system.billing.usage, associant chaque DBU consommée à une équipe, un projet ou un centre de coûts. Le marquage fonctionne de la même manière pour chaque type de SQL warehouse — Classic, Pro et Serverless sont tous tagués au niveau du SQL warehouse, ce qui vous permet d'apprendre un seul modèle et de l'appliquer partout.
Définissez des tags dans l'UI sous SQL Warehouses > votre SQL warehouse > Edit > Tags, ou créez le SQL warehouse via l'API REST :
Taguer via l'API REST
Appliquez au moins trois dimensions : l'équipe (à qui il appartient), le centre de coûts (qui paie) et le cas d'usage (service BI, ad hoc, rafraîchissement planifié).
Il n'existe pas aujourd'hui de politique native qui impose les tags sur les SQL warehouses, de sorte que n'importe qui peut en créer un sans tag. Intégrez plutôt cette obligation dans votre processus de provisionnement — créez des SQL warehouses avec Terraform, Declarative Automation Bundles ou l'API REST avec des tags dans la définition, et considérez l'UI comme l'exception. La requête sur l'écart d'attribution présentée plus bas dans cet article interceptera tout ce qui passe à travers les mailles du filet.
Niveau 2 : Taguer la requête
Les tags de SQL warehouse vous indiquent qu'un SQL warehouse a coûté 4 000 $ le mois dernier. Ils ne vous disent pas que 60 % de ce coût provient d'un seul tableau de bord Power BI qui se rafraîchit toutes les 15 minutes. Cet écart est important car les SQL warehouses sont partagés — un seul SQL warehouse BI dessert des dizaines de tableaux de bord, plusieurs modèles d'outils d'ingénierie de données dbt et un flux de requêtes ad hoc.

Les tags de requête (Public Preview) comblent ce manque en associant un contexte métier à chaque instruction SQL :
Les tags arrivent dans la colonne query_tags de system.query.history (Public Preview), aux côtés de executed_by et statement_id, ce qui vous permet de regrouper les dépenses par tableau de bord, modèle ou centre de coûts plutôt que par SQL warehouse. Certains outils les configurent pour vous : à partir de dbt-databricks 1.11.0, les requêtes de modèle sont automatiquement taguées avec le nom du modèle dbt, et Power BI transmet les identifiants d'espace de travail et de jeu de données via le pilote ADBC.
Deux remarques : les balises de requête s'appliquent uniquement aux requêtes SQL warehouse, et comme elles figurent dans l'historique des requêtes plutôt que dans les données de facturation, vous devez faire la jointure vous-même pour obtenir le coût par requête.
Avant d'écrire du SQL, consultez la page Coûts dans le Governance Hub (Bêta) — une vue au niveau du compte des dépenses, des facteurs de coûts, des budgets et de la couverture des balises, et le moyen le plus rapide de voir quelle part de votre utilisation est attribuable. Un administrateur de compte l'active depuis la page Previews de la console de compte.

Dans la console de compte, accédez à Usage > Budgets, cliquez Add budget, puis configurez :
Nom du budget | Montant | Portée (Balises) | Destinataires de l'alerte |
|---|---|---|---|
Service BI + Production | 8 000 $/mois |
| platform-team@company.com |
Analytics, Ad-hoc | 3 000 $/mois |
| analytics-mgr@company.com |
Marketing Analytics | 2 500 $/mois |
| mkt-data-lead@company.com |
Filet de sécurité à l'échelle du compte | 25 000 $/mois | (toute l'utilisation SQL) | cto@co.com, finops@company.com |
Le modèle clé repose sur des budgets superposés : des budgets au niveau de l'équipe pour la responsabilisation, plus un budget à l'échelle du compte comme filet de sécurité pour intercepter tout ce qui passe à travers les mailles du filet.
Gardez à l'esprit que les budgets sont un mécanisme de suivi, pas une limite stricte. Ils n'arrêtent pas l'utilisation et n'empêchent pas la facturation, votre facture peut donc tout de même dépasser ce montant. L'objectif est la sensibilisation et la réactivité, et non des coupures qui pourraient interrompre un tableau de bord de production en plein rafraîchissement.
GetYourGuide a testé cela directement : la consolidation de toutes leurs charges de travail Looker sur SQL Serverless a réduit les coûts de service BI d'environ 20 % et a accéléré les requêtes de 35 %, même si l'équipe s'attendait à ce que les clusters Classic soient moins chers. Le choix du type de warehouse est une décision budgétaire qui mérite d'être réévaluée, et non un choix unique.
Cliquez sur n'importe quel budget pour voir les dépenses actuelles par rapport à l'objectif, le budget restant et une visualisation quotidienne de la vitesse de consommation. Pour le data warehousing, ce graphique est particulièrement révélateur :
Les budgets vous indiquent où vous en êtes. Les alertes vous indiquent quand agir.
Lorsque vous créez un budget, ajoutez des destinataires par e-mail qui seront informés lorsque les dépenses dépassent le montant du budget. Aucun code n'est nécessaire.
Pour les alertes basées sur des seuils, créez des alertes Databricks SQL qui interrogent directement `system.billing.usage`. Voici les modèles les plus importants :
C'est le modèle qui apporte le plus de valeur aux équipes. Au lieu de déclencher une alerte après le dépassement, il projette les dépenses de fin de mois et se déclenche avant que cette projection ne dépasse votre budget, vous laissant ainsi le temps d'agir :
Planifiez cela toutes les quatre heures et envoyez les notifications vers Slack ou par e-mail. Cela donne aux équipes plusieurs jours pour réagir (redimensionner un warehouse, optimiser une requête coûteuse, reporter un traitement par lots) avant que le budget ne soit dépassé.
Les coûts de rafraîchissement des vues matérialisées sont ceux que les équipes oublient le plus souvent, car ils sont facturés en tant qu'utilisation de pipeline serverless plutôt qu'en tant qu'utilisation de warehouse. Une vue configurée pour se rafraîchir toutes les 15 minutes par rapport à une source mise à jour deux fois par jour génère des dépenses inutiles. Adaptez la fréquence de rafraîchissement à la fréquence réelle de modification des données sous-jacentes, puis surveillez directement les dépenses du pipeline :
Les alertes sont des déclencheurs ponctuels. Les tableaux de bord offrent un contexte continu. Databricks fournit des tableaux de bord d'utilisation prédéfinis que les administrateurs de compte peuvent importer dans n'importe quel espace de travail activé pour Unity Catalog. Ceux-ci couvrent les tendances de dépenses, l'analyse des N premiers, le filtrage par tag et les analyses détaillées par entrepôt. Pour un suivi personnalisé, deux requêtes sont particulièrement utiles :
L'utilisation SQL sans tag constitue votre écart d'attribution, c'est-à-dire des dépenses d'entrepôt qui ne peuvent être attribuées à aucune équipe. Réduisez-les à zéro.
Raiffeisen Bank International a développé sa propre plateforme de suivi et de prévision des coûts directement sur les tables système de Databricks, avec une visibilité par entrepôt, par utilisateur et par charge de travail. Le bénéfice a été autant culturel que technique : des charges de travail 3 à 4 fois plus rapides et, plus important encore, lorsque les équipes peuvent voir leurs propres dépenses et doivent les expliquer, les comportements changent d'eux-mêmes sans avoir besoin de directives.
Les quatre premiers piliers consistent à visualiser vos dépenses. Celui-ci vise à les réduire, et c'est celui que la plupart des équipes négligent. Commencez par les deux changements qui améliorent simultanément les coûts et les performances.
Activez l'optimisation prédictive pour les tables gérées de Unity Catalog. Databricks exécute OPTIMIZE, VACUUM et ANALYZE pour vous en fonction de la manière dont chaque table est réellement interrogée, et avec CLUSTER BY AUTO, il ajuste les clés de clustering à mesure que les modèles de requête évoluent. Moins de données analysées signifie des requêtes plus rapides et moins de DBU, sans aucun calendrier de maintenance à gérer. Cette fonctionnalité est activée par défaut pour les comptes créés à partir du 11 novembre 2024, et sera déployée sur les comptes plus anciens d'ici 2026.
Utilisez par défaut les entrepôts serverless pour bénéficier des économies de démarrage et d'inactivité décrites précédemment — pour la plupart des équipes, cela représente l'essentiel des économies, sans effort continu.
À partir de là, quelques paramètres méritent d'être ajustés :
La couche de données est également importante : OPTIMIZE, VACUUM, et le liquid clustering réduisent chacun la puissance de calcul requise par une requête, et cet effet s'accumule sur des milliers de requêtes BI par jour.
Au fond, la plupart des problèmes de coûts sont des problèmes de requêtes. Une clé de jointure manquante ou un SELECT * sur une table large coûte le même prix, quelle que soit la configuration de l'entrepôt — et l'attribution du Pilier 1 est ce qui vous indique quelles requêtes et quels tableaux de bord corriger.
1. Intégrez le serverless et l'attribution dans la plateforme dès le premier jour. Utilisez par défaut des entrepôts SQL Serverless pour un démarrage instantané, une mise à l'échelle automatique et aucun coût d'inactivité, et imposez des tags personnalisés dès le départ, car l'utilisation non attribuée est invisible et l'utilisation invisible augmente toujours.
2. Budgétisez et alertez de manière proactive, à plusieurs niveaux. Associez des budgets par équipe pour responsabiliser chacun à un budget global au niveau du compte pour détecter les anomalies, et configurez des alertes basées sur le rythme de consommation, et pas seulement sur des seuils, afin d'être informé d'un dépassement à temps pour agir plutôt qu'après coup.
3. Rendez les dépenses visibles et intégrez-les à votre culture. Les économies les plus durables proviennent de la transparence, pas des restrictions. Placez donc les tableaux de bord de coûts là où les équipes travaillent. Comme l'a constaté RBI, lorsque les équipes peuvent voir leurs propres dépenses, les comportements changent d'eux-mêmes sans directives.
Voici le chemin le plus rapide pour commencer et maîtriser vos factures avant qu'elles n'explosent :
Prêt à prendre le contrôle des coûts de votre entrepôt de données cloud ? Créez un compte d'essai gratuit Databricks, configurez votre premier entrepôt SQL Serverless et définissez un budget avec des alertes e-mail dans la console de compte. Cela prend cinq minutes et ne coûte rien.
Pour approfondir l'observabilité des coûts, explorez la documentation sur les tables système de facturation et importez le tableau de bord d'utilisation prédéfini pour commencer à suivre vos dépenses dès le premier jour.
(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original
Abonnez-vous à notre blog et recevez les derniers articles directement dans votre boîte mail.