AccueilBlogTest technique Snowflake
Guide recrutement data

Test technique Snowflake : ce qu'on évalue vraiment en entretien

Snowflake sépare stockage et compute, et facture au temps de calcul (crédits). L'écart se creuse entre celui qui lance un warehouse surdimensionné en continu et celui qui optimise le coût sans sacrifier la performance. Voici ce qu'on évalue.

Data Builder·Juillet 2025·10 min de lecture·Data Engineer / Analytics Engineer

La force de Snowflake, c'est la séparation stockage/compute et des fonctionnalités uniques (clone zéro-copie, time travel). Un profil solide sait s'en servir pour aller vite et maîtriser les coûts. Cinq dimensions.

1Séparation stockage / compute

Question discriminante

Expliquez les virtual warehouses et le multi-cluster. Comment évitez-vous de gaspiller des crédits ?

  • Un warehouse est du compute indépendant du stockage, dimensionnable (XS→XL…).
  • auto_suspend / auto_resume pour ne payer que l'usage réel.
  • Multi-cluster pour absorber la concurrence, pas pour accélérer une requête.
  • Dimensionner selon la charge : plus gros ≠ toujours mieux ni moins cher.

Signal d'alerte : laisser un gros warehouse actif en permanence pour de petites requêtes brûle des crédits inutilement.

2Zero-copy cloning et Time Travel

Question discriminante

Comment testez-vous sur des données de prod sans les dupliquer, et comment récupérez-vous une table effacée ?

  • Zero-copy clone — cloner une base/table instantanément, sans coût de stockage initial.
  • Time Travel — interroger ou restaurer des données passées (jusqu'à 90 j).
  • UNDROP pour récupérer un objet supprimé par erreur.
  • Fail-safe pour la récupération d'urgence côté Snowflake.

3VARIANT et semi-structuré

Question discriminante

Comment interrogez-vous du JSON stocké en VARIANT ?

SELECT v:client:pays::string AS pays, COUNT(*) AS n FROM events, LATERAL FLATTEN(input => v:sessions) GROUP BY pays
  • VARIANT — stocker du JSON semi-structuré nativement.
  • Notation par points (v:champ) et cast (::string).
  • LATERAL FLATTEN pour déplier un tableau imbriqué.
  • Savoir quand normaliser plutôt que tout garder en VARIANT.

4MERGE et chargement de données

Question discriminante

Comment gérez-vous un upsert (insert + update) et l'ingestion continue ?

MERGE INTO clients c USING maj m ON c.id = m.id WHEN MATCHED THEN UPDATE SET c.email = m.email WHEN NOT MATCHED THEN INSERT (id, email) VALUES (m.id, m.email)
  • MERGE — upsert en une instruction (central au CDC).
  • COPY INTO + Snowpipe pour l'ingestion depuis un stage.
  • Streams (capture de changements) + Tasks (orchestration).
  • Idempotence du chargement pour éviter les doublons.

5Coûts et optimisation

Question discriminante

La facture Snowflake grimpe. Par quoi commencez-vous ?

  • Analyser le Query Profile : spilling, scans, partitions.
  • Ajuster la taille des warehouses et l'auto-suspend.
  • Clés de clustering sur les grosses tables très filtrées.
  • Exploiter le cache de résultats (requêtes identiques gratuites).

6Grille par niveau

NiveauMaîtrise attendueSignal GONO-GO
JuniorSQL Snowflake, warehouses, chargement simpleComprend séparation stockage/compute, auto-suspendLaisse un gros warehouse actif en permanence
ConfirméClone, time travel, VARIANT/FLATTEN, MERGEClone pour tester, interroge du JSON, fait un upsertDuplique des données au lieu d'un zero-copy clone
SeniorStreams/tasks, clustering, optimisation coûtsAnalyse un Query Profile, réduit la factureNe sait pas expliquer une hausse de crédits
LeadArchitecture multi-warehouse, gouvernanceDéfinit le dimensionnement et les standards de coûtN'a aucune stratégie de maîtrise des coûts

Vous recrutez un profil data ?

Data Builder mène l'entretien technique et vous livre un rapport clair et détaillé sous 24h. Premier entretien offert.

Tester gratuitementRéserver un appel