Tabelle dinamiche

Automazione delle pipeline di dati in Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Tabelle dinamiche vs Stream e Task

Tabelle dinamiche:

Schermata 11/05/2026, 11:14:23.png

  • Semplificano le trasformazioni della pipeline dati con SQL dichiarativo
  • Processo di refresh automatico
  • Snowflake rileva, pianifica e fa il merge

Stream e task:

Schermata 11/05/2026, 11:14:13.png

1 * Materiale formativo Snowflake
Automazione delle pipeline di dati in Snowflake

Cosa sono le tabelle dinamiche?

Automazione dichiarativa della pipeline

  • Contenuto definito da una query SELECT — descrivi il risultato, Snowflake gestisce il refresh
  • Niente configurazione di stream, niente task da pianificare
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;
Automazione delle pipeline di dati in Snowflake

TARGET_LAG: riduci la staleness

Il contratto di freschezza tra te e Snowflake

Valore TARGET_LAG Effetto
'5 minutes' La tabella non è mai più vecchia di 5 minuti: refresh frequenti
'1 hour' Refresh meno frequenti: minor consumo di compute
DOWNSTREAM Deduce il lag dai dipendenti downstream: ideale per catene
Automazione delle pipeline di dati in Snowflake

Refresh completo vs incrementale

Refresh incrementale

  • Traccia esattamente quali righe sorgente sono cambiate
  • Aggiorna solo le righe interessate — più veloce, più economico in scala
-- Adatto all’incrementale: 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

Refresh completo

  • Rielabora l’intera query
  • Necessario per alcune aggregazioni e operazioni su insiemi
Automazione delle pipeline di dati in Snowflake

Collegare tabelle dinamiche

Diagramma pipeline — delivery_events (origine) → cleaned_events (target_lag = DOWNSTREAM) → delivery_summary (target_lag = 1 HOUR)

  • Ogni trasformazione è una tabella dinamica separata con la sua query
  • I refresh si propagano automaticamente nella catena
  • Il lag DOWNSTREAM segue le esigenze della tabella successiva: niente over-refresh
Automazione delle pipeline di dati in Snowflake

Tabelle dinamiche vs Stream e Task

Tabelle dinamiche: dichiarative

  • Descrivi l’output; Snowflake gestisce il refresh, gestione semplice
  • Ideali per livelli di analytics/reporting
-- Dichiara il risultato a Snowflake 
CREATE DYNAMIC TABLE logistics.summary
  TARGET_LAG = '1 hour' 
  WAREHOUSE = harbr_wh
AS SELECT region, COUNT(*) 
FROM shipments 
GROUP BY 1;

Stream + Task: imperative

  • Controlli cosa esegue e quando
  • Ideali per logiche complesse ramificate e pipeline operative
-- Controlli ogni passo
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
Automazione delle pipeline di dati in 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
Automazione delle pipeline di dati in Snowflake

Ayo berlatih!

Automazione delle pipeline di dati in Snowflake

Preparing Video For Download...