Les coûts cloud data peuvent exploser sans contrôle. En entretien Senior et Lead, on évalue la capacité à architecturer pour la performance ET l économie.
1Réduire les coûts Snowflake
Question discriminante
Quelles sont les 5 leviers principaux pour réduire les coûts Snowflake ?
- 1. Auto-suspend agressif — 1 minute pour les warehouses ETL (jobs courts), 5-10 minutes pour les warehouses BI (utilisateurs en session)
- 2. Incremental models dbt — éviter les full refreshes sur les grandes tables. Économise 80-90% du compute de transformation
- 3. Warehouse sizing approprié — commencer petit (XS) et scaler uniquement si les requêtes sont lentes. Un M ne va pas 2x plus vite qu un S
- 4. Result cache — les requêtes identiques retournent le cache 24h. Standardiser les requêtes BI pour maximiser les hits
- 5. Resource monitors — configurer des alertes et des limites de dépenses par warehouse et par mois
2Réduire les coûts BigQuery
Question discriminante
Quels sont les pièges de coûts BigQuery les plus fréquents et comment les éviter ?
-- PIÈGE 1 : SELECT * sur une table partitionnée
-- Mauvais : scanne toutes les colonnes et toutes les partitions
SELECT * FROM project.dataset.orders;
-- Bon : sélectionner les colonnes nécessaires + filtrer la partition
SELECT order_id, amount, customer_id
FROM project.dataset.orders
WHERE DATE(order_date) >= '2025-01-01'; -- filtre la partition
-- PIÈGE 2 : Pas de require_partition_filter
-- Un utilisateur peut scanner 1TB par accident
ALTER TABLE orders
SET OPTIONS (require_partition_filter = TRUE);
-- PIÈGE 3 : Jointure sans filtre préalable
-- Mauvais : jointure sur les tables entières
SELECT * FROM big_table JOIN other_big_table USING (id);
-- Bon : filtrer avant de joindre
SELECT * FROM
(SELECT * FROM big_table WHERE date > '2025-01-01') a
JOIN (SELECT * FROM other_big_table WHERE active = TRUE) b
USING (id);
3Optimiser Databricks / Spark
Question discriminante
Comment réduisez-vous les coûts Databricks en production ?
- Spot/Preemptible nodes — utiliser des instances spot pour les workers des jobs batch. 60-80% moins cher. Configurer le retry automatique
- Job clusters vs interactive — toujours utiliser des job clusters pour la production (créés/détruits à chaque job). Ne pas laisser des clusters all-purpose tourner
- Photon engine — active sur les clusters SQL. 2-5x plus rapide = moins de DBU consommées
- Instance pools — pré-allouer des instances en stand-by pour réduire le startup time sans laisser tourner des clusters
- Auto-termination — configurer une terminaison automatique après N minutes d inactivité sur tous les clusters
4Optimiser le stockage S3/GCS
Question discriminante
Le stockage S3 semble cheap mais peut coûter cher. Quels sont les pièges ?
- Requêtes LIST sur S3 — les opérations LIST sont facturées. Un job Spark qui liste des milliers de partitions peut coûter cher
- Small files — des millions de fichiers de 1KB = millions de requêtes S3 = coût élevé + lenteur. Compacter régulièrement
- Storage classes — S3 Intelligent-Tiering pour les données rarement accédées. S3 Glacier pour l archivage
- Data transfer — les transferts inter-région et vers internet sont facturés. Garder les données et le compute dans la même région
- Versioning non contrôlé — S3 Versioning + beaucoup d écritures = accumulation silencieuse. Configurer des lifecycle rules
5Monitorer les coûts en temps réel
Question discriminante
Comment mettez-vous en place un monitoring des coûts cloud pour votre équipe data ?
- Resource monitors Snowflake — alertes à 50%, 75%, 90% du budget mensuel par warehouse
- BigQuery INFORMATION_SCHEMA — requêter les octets facturés par utilisateur et par projet quotidiennement
- AWS Cost Explorer / GCP Billing — labels sur les ressources (équipe, projet, environnement) pour ventiler les coûts
- Budget alerts — alertes email/Slack quand le budget prévisionnel dépasse X% du budget mensuel
- Dashboard FinOps — un dashboard hebdomadaire partagé avec l équipe : coûts par outil, trend, anomalies
6Culture FinOps : rendre les coûts visibles
Question discriminante
Comment diffusez-vous la culture FinOps dans une équipe data ?
- Rendre les coûts visibles — afficher les coûts par job dbt, par modèle, par utilisateur. Les gens optimisent ce qu ils voient
- Attribution des coûts — facturer les coûts cloud aux équipes métier qui consomment les données. Crée une pression naturelle à l optimisation
- Code review FinOps — inclure une revue des coûts estimés dans le processus de PR pour les gros modèles dbt
- Champion FinOps — désigner un référent FinOps dans l équipe data qui suit les tendances et propose des optimisations
7Grille par niveau
| Niveau | Maitrise | Signal GO | NO-GO |
|---|
| Confirmé | Auto-suspend Snowflake, évite SELECT *, partitionnement BigQuery | Configure l auto-suspend, filtre toujours les partitions BigQuery | Ne sait pas combien coûtent ses requêtes BigQuery |
| Senior | Spot nodes, resource monitors, incremental models, monitoring coûts | A réduit les coûts de son équipe de façon mesurable, monitore les coûts hebdomadairement | N a jamais regardé les coûts cloud de ses pipelines |