Tabele dinamice

Automatizarea pipeline-urilor de date în Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Tabele dinamice vs. Fluxuri și Sarcini

Tabele dinamice:

Screenshot 2026-05-11 at 11.14.23 am.png

  • Simplifică transformările din pipeline folosind instrucțiuni SQL declarative
  • Proces de reîmprospătare automată
  • Snowflake detectează, planifică și îmbină

Fluxuri și sarcini:

Screenshot 2026-05-11 at 11.14.13 am.png

1 * Snowflake Learning Material
Automatizarea pipeline-urilor de date în Snowflake

Ce sunt tabelele dinamice?

Automatizare declarativă a pipeline-ului

  • Conținutul este definit printr-o interogare SELECT — descrieți rezultatul, Snowflake gestionează reîmprospătarea
  • Fără configurare de fluxuri, fără sarcini de planificat
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;
Automatizarea pipeline-urilor de date în Snowflake

TARGET_LAG: Reducerea uzurii datelor

Contractul de prospețime dintre dumneavoastră și Snowflake

Valoare TARGET_LAG Efect
'5 minutes' Tabela are maximum 5 minute întârziere — reîmprospătări frecvente
'1 hour' Reîmprospătări mai rare — consum redus de resurse
DOWNSTREAM Întârzierea se deduce din dependențele din aval — ideal pentru tabele înlănțuite
Automatizarea pipeline-urilor de date în Snowflake

Reîmprospătare completă vs. incrementală

Reîmprospătare incrementală

  • Urmărește exact ce rânduri sursă s-au modificat
  • Reîmprospătează doar rândurile afectate — mai rapid și mai eficient la scară
-- Incremental-friendly: 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

Reîmprospătare completă

  • Reprocesează întreaga interogare
  • Necesară pentru anumite agregări și operații pe mulțimi
Automatizarea pipeline-urilor de date în Snowflake

Înlănțuirea tabelelor dinamice

Diagramă pipeline — delivery_events (sursă) → cleaned_events (target_lag = DOWNSTREAM) → delivery_summary (target_lag = 1 ORĂ)

  • Fiecare transformare este o tabelă dinamică separată cu propria interogare
  • Reîmprospătările se propagă automat prin lanț
  • Întârzierea DOWNSTREAM se adaptează la necesitățile tabelei următoare — fără reîmprospătări excesive
Automatizarea pipeline-urilor de date în Snowflake

Tabele dinamice vs. Fluxuri și Sarcini

Tabele dinamice: declarativ

  • Descrieți rezultatul; Snowflake gestionează reîmprospătarea
  • Ideal pentru straturi de analiză/raportare
-- Declare the result for Snowflake 
CREATE DYNAMIC TABLE logistics.summary
  TARGET_LAG = '1 hour' 
  WAREHOUSE = harbr_wh
AS SELECT region, COUNT(*) 
FROM shipments 
GROUP BY 1;

Fluxuri + Sarcini: imperativ

  • Controlați ce rulează și când
  • Ideal pentru logică personalizată complexă și pipeline-uri operaționale
-- You control every step
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
Automatizarea pipeline-urilor de date în 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
Automatizarea pipeline-urilor de date în Snowflake

Să exersăm!

Automatizarea pipeline-urilor de date în Snowflake

Preparing Video For Download...