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 11/05/2026 à 11:14:23.png

  • Simplifient les transformations de pipeline via des instructions SQL déclaratives
  • Processus d’actualisation automatique
  • Snowflake détecte, planifie et fusionne

Streams et tasks :

Capture d’écran du 11/05/2026 à 11:14:13.png

1 * Snowflake Learning Material
Automatisation des pipelines de données dans Snowflake

Qu’est-ce qu’une table dynamique ?

Automatisation déclarative du pipeline

  • Contenu défini par une requête SELECT — vous décrivez le résultat, Snowflake gère l’actualisation
  • 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 a au plus 5 min de retard — actualisations fréquentes
'1 hour' Actualisations moins fréquentes — consommation de calcul réduite
DOWNSTREAM Déduit le lag des dépendants aval — idéal pour les tables chaînées
Automatisation des pipelines de données dans Snowflake

Actualisation complète vs incrémentielle

Actualisation incrémentielle

  • Suit précisément quelles lignes sources ont changé
  • N’actualise que les lignes affectées — plus rapide, moins coûteux à l’échelle
-- Compatible incrémentiel : 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

Actualisation complète

  • Recalcule toute la requête
  • Requise 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 requête
  • Les actualisations se propagent automatiquement dans la chaîne
  • Le lag DOWNSTREAM s’aligne sur le besoin de la table suivante — évite la sur-actualisation
Automatisation des pipelines de données dans Snowflake

Tables dynamiques vs Streams et Tasks

Tables dynamiques : déclaratives

  • Décrivez le résultat ; Snowflake gère l’actualisation, gestion simplifiée
  • Idéales pour les couches analytics/rapport
-- Déclarez 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ératives

  • Contrôlez quoi exécuter et quand
  • Idéales pour des logiques complexes 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...