Tables dynamiques

Automatisation des pipelines de données dans Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Tables dynamiques vs Streams et Tasks

Tables dynamiques :

Capture d’écran du 2026-05-11 à 11.14.23 AM.png

  • Simplifiez les transformations de pipeline avec des instructions SQL déclaratives
  • Processus de rafraîchissement automatique
  • Snowflake détecte, planifie et fusionne

Streams et tasks :

Capture d’écran du 2026-05-11 à 11.14.13 AM.png

1 * Documentation d’apprentissage Snowflake
Automatisation des pipelines de données dans Snowflake

Qu’est-ce qu’une table dynamique?

Automatisation déclarative du pipeline

  • Le contenu est défini par une requête SELECT — décrivez le résultat, Snowflake gère le rafraîchissement
  • Aucun stream à configurer, aucune task à planifier
CREATE DYNAMIC TABLE logistics.delivery_summary
  TARGET_LAG = '1 hour'
  WAREHOUSE = harbr_wh
AS
  SELECT region, COUNT(*) AS shipments,
         AVG(delivery_days) AS avg_days
  FROM logistics.shipments GROUP BY region;
Automatisation des pipelines de données dans Snowflake

TARGET_LAG : réduire l’obsolescence

Le contrat de fraîcheur entre vous et Snowflake

Valeur de TARGET_LAG Effet
'5 minutes' La table est jamais âgée de plus de 5 minutes — rafraîchissements fréquents
'1 hour' Rafraîchissements moins fréquents — moins de calcul
DOWNSTREAM Déduit le lag des dépendants en aval — idéal pour les tables chaînées
Automatisation des pipelines de données dans Snowflake

Rafraîchissement complet vs incrémental

Rafraîchissement incrémental

  • Suit exactement quelles lignes sources ont changé
  • Ne rafraîchit que les lignes touchées — plus rapide, moins coûteux à l’échelle
-- Compatible avec l’incrémental : 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

Rafraîchissement complet

  • Re-traite toute la requête
  • Requis pour certaines agrégations et opérations ensemblistes
Automatisation des pipelines de données dans Snowflake

Chaîner des tables dynamiques

Schéma de pipeline — delivery_events (source) → cleaned_events (target_lag = DOWNSTREAM) → delivery_summary (target_lag = 1 HOUR)

  • Chaque transformation est une table dynamique distincte avec sa propre requête
  • Les rafraîchissements se propagent automatiquement dans la chaîne
  • Le lag DOWNSTREAM s’aligne sur le besoin de la table suivante — évite le sur-rafraîchissement
Automatisation des pipelines de données dans Snowflake

Tables dynamiques vs Streams et Tasks

Tables dynamiques : déclaratif

  • Décrivez le résultat; Snowflake gère le rafraîchissement, gestion simplifiée
  • Idéal pour l’analytique et le reporting
-- Déclarer le résultat pour Snowflake 
CREATE DYNAMIC TABLE logistics.summary
  TARGET_LAG = '1 hour' 
  WAREHOUSE = harbr_wh
AS SELECT region, COUNT(*) 
FROM shipments 
GROUP BY 1;

Streams + Tasks : impératif

  • Vous contrôlez quoi exécuter et quand
  • Idéal pour des logiques complexes ramifiées et des pipelines opérationnels
-- Vous contrôlez chaque étape
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
Automatisation des pipelines de données dans Snowflake

DYNAMIC_TABLE_REFRESH_HISTORY

SELECT name, state, refresh_start_time, refresh_end_time
FROM TABLE (
    INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY (
      NAME_PREFIX => 'HARBR_DB.DELIVERY_SUMMARY.', ERROR_ONLY => TRUE
    )
  )
ORDER BY name, data_timestamp;
NAME TRIGGER STATE START END
DELIVERY_SUMMARY SCHEDULED SUCCEEDED 2026-03-01 05:00:00 2024-03-01 05:00:08
DELIVERY_SUMMARY SCHEDULED FAILED 2026-03-01 04:00:00 2024-03-01 04:00:03
Automatisation des pipelines de données dans Snowflake

Passons à la pratique !

Automatisation des pipelines de données dans Snowflake

Preparing Video For Download...