Au-delà des bases Snowflake, l optimisation des performances nécessite de maîtriser le Query Profile, le clustering intelligent et les fonctionnalités avancées. En entretien Senior, c est ce qu on évalue.
Comment utilisez-vous le Query Profile Snowflake pour identifier un goulot d étranglement ?
-- Trouver les requêtes lentes des dernières 24h
SELECT
query_id,
query_text,
total_elapsed_time / 1000 AS elapsed_sec,
bytes_scanned / POW(1024, 3) AS gb_scanned,
partitions_scanned,
partitions_total,
partitions_scanned * 100.0 / NULLIF(partitions_total, 0) AS pct_scanned
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE START_TIME >= DATEADD('hour', -24, CURRENT_TIMESTAMP)
AND EXECUTION_STATUS = 'SUCCESS'
AND TOTAL_ELAPSED_TIME > 30000 -- > 30 secondes
ORDER BY TOTAL_ELAPSED_TIME DESC
LIMIT 20;
-- Signal de problème : pct_scanned proche de 100%
-- Signifie que le clustering n aide pasQuand créez-vous un Clustering Key sur plusieurs colonnes ? Comment vérifier son efficacité ?
-- Clustering sur plusieurs colonnes (ordre important)
-- Colonne la plus sélective en premier
ALTER TABLE fct_events
CLUSTER BY (event_date, event_type, user_segment);
-- Vérifier l efficacité du clustering
SELECT SYSTEM$CLUSTERING_INFORMATION('fct_events',
'(event_date, event_type)');
-- average_depth proche de 1 = bon clustering
-- average_depth > 3 = reclustering nécessaire
-- Clustering automatique (Automatic Clustering)
-- Snowflake maintient le clustering automatiquement
-- Coût: crédit de compute supplémentaire
ALTER TABLE fct_events RESUME RECLUSTER;Dans quel cas une Materialized View Snowflake est-elle préférable à une table dbt ?
Qu est-ce que le Search Optimization Service ? Pour quels types de requêtes ?
Qu est-ce que le Query Acceleration Service ?
Comment choisissez-vous entre scaler up (plus grand warehouse) et scaler out (multi-cluster) ?
| Problème | Solution | Pourquoi |
|---|---|---|
| Requête unique trop lente | Scale UP (XS → S → M) | Plus de compute par requête |
| Trop de requêtes simultanées (queueing) | Scale OUT (multi-cluster) | Plus de warehouses parallèles |
| Transformation nightly lente | Scale UP temporairement | Finir plus vite, auto-suspend ensuite |
| Dashboard BI avec 50 users simultanés | Multi-cluster auto-scale | Distribuer la charge |
| Niveau | Maitrise | Signal GO | NO-GO |
|---|---|---|---|
| Confirmé | Query Profile, clustering basique, auto-suspend | Lit le Query Profile, a configuré un clustering key | Ne sait pas lire le Query Profile |
| Senior | Clustering efficacité, MV, SOS, QAS, multi-cluster | Vérifie l efficacité du clustering avec CLUSTERING_INFORMATION, a utilisé MV ou SOS | Ne sait pas la différence entre scale up et scale out |
Premier entretien gratuit. Rapport GO/NO-GO sous 48h.