J'ai audité une plateforme Snowflake la semaine dernière : 47 000€ de facture mensuelle. Après optimisation, elle est tombée à 18 000€. Sans renégocier le contrat. Sans réduire l'activité. Juste en corrigeant cinq erreurs classiques.

Avant d'entrer dans le détail, visualisons la plus dévastatrice d'entre elles. Le graphique ci-dessous compare un warehouse X-Small correctement configuré (en haut) au même warehouse sans AUTO_SUSPEND (en bas). L'aire sous la courbe, c'est votre facture.

Erreur de coût Snowflake classique

Erreur 1 — Warehouses 24/7 sans auto-suspend

-- Problème
CREATE WAREHOUSE ANALYTICS_WH
  WAREHOUSE_SIZE = 'X-LARGE'
  AUTO_SUSPEND = NULL;

-- Correction
CREATE WAREHOUSE ANALYTICS_WH
  WAREHOUSE_SIZE = 'X-LARGE'
  AUTO_SUSPEND = 60;

Un X-Large à l'arrêt complet coûte déjà 40€/h × 24h × 30j = 28 800€/mois. Même s'il ne tourne que 2h par jour.

Erreur 2 — Requêtes qui scannent des téraoctets inutiles

-- Problème
SELECT * FROM SALES_FACT;  -- 5 To scannés

-- Correction
SELECT order_id, customer_id, amount, order_date
FROM SALES_FACT
WHERE order_date >= DATEADD(month, -12, CURRENT_DATE());  -- 50 Go scannés

Snowflake facture au volume scanné. Le ratio passe de 1 à 100.

Erreur 3 — Clustering keys absentes ou mal choisies

ALTER TABLE SALES_FACT CLUSTER BY (order_date, region_id);

Sur les tables de plus de 1 To, un bon clustering réduit le scan de 80 à 95%.

Erreur 4 — Resource Monitors non configurés

CREATE RESOURCE MONITOR MONTHLY_BUDGET
  CREDIT_QUOTA = 5000
  FREQUENCY = MONTHLY
  NOTIFY_AT = (75, 90, 100);

Sans monitor, personne ne sait qu'on a consommé 150% du budget jusqu'à l'arrivée de la facture.

Erreur 5 — Ingestion sans compression

COPY INTO MY_TABLE
FROM @my_stage
FILE_FORMAT = (TYPE = 'PARQUET' COMPRESSION = 'SNAPPY');

Les fichiers Parquet + Snappy réduisent le volume ingéré de 5 à 10x.

Résultat de l'audit

Poste Avant Après Économie
Warehouses 28 800€ 4 200€ -85%
Requêtes 12 000€ 3 500€ -71%
Stockage 4 500€ 2 800€ -38%
Ingestion 1 700€ 900€ -47%
Total 47 000€ 11 400€ -76%

Le FinOps sur Snowflake, ce n'est pas renégocier le contrat. C'est optimiser l'usage.

Next Post