Dynamické tabulky

Automatizace datových pipeline ve Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Dynamické tabulky vs. streamy a úlohy

Dynamické tabulky:

Screenshot 2026-05-11 at 11.14.23 am.png

  • Zjednodušují transformace pipeline pomocí deklarativních příkazů SQL
  • Automatický proces obnovení
  • Snowflake detekuje, plánuje a slučuje

Streamy a úlohy:

Screenshot 2026-05-11 at 11.14.13 am.png

1 * Snowflake Learning Material
Automatizace datových pipeline ve Snowflake

Co jsou dynamické tabulky?

Deklarativní automatizace pipeline

  • Obsah definován dotazem SELECT — popis výsledku, Snowflake řídí obnovení
  • Žádná konfigurace streamů ani plánování úloh
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;
Automatizace datových pipeline ve Snowflake

TARGET_LAG: Omezení zastarávání dat

Smlouva o aktuálnosti mezi vámi a Snowflake

Hodnota TARGET_LAG Efekt
'5 minutes' Tabulka není nikdy starší než 5 minut – časté obnovení
'1 hour' Méně časté obnovení – nižší spotřeba výpočetního výkonu
DOWNSTREAM Prodleva odvozena od závislých objektů – ideální pro řetězené tabulky
Automatizace datových pipeline ve Snowflake

Úplné vs. přírůstkové obnovení

Přírůstkové obnovení

  • Sleduje přesně, které zdrojové řádky se změnily
  • Obnovuje pouze ovlivněné řádky – rychlejší a úspornější
-- Incremental-friendly: 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

Úplné obnovení

  • Znovu zpracuje celý dotaz
  • Vyžadováno u určitých agregací a množinových operací
Automatizace datových pipeline ve Snowflake

Řetězení dynamických tabulek

Diagram pipeline — delivery_events (zdroj) → cleaned_events (target_lag = DOWNSTREAM) → delivery_summary (target_lag = 1 HOUR)

  • Každá transformace je samostatná dynamická tabulka s vlastním dotazem
  • Obnovení se automaticky šíří celým řetězcem
  • Prodleva DOWNSTREAM se řídí potřebami následující tabulky – bez zbytečných obnovení
Automatizace datových pipeline ve Snowflake

Dynamické tabulky vs. streamy a úlohy

Dynamické tabulky: deklarativní

  • Popis výstupu; Snowflake řídí obnovení, snadná správa
  • Vhodné pro analytické/reportingové vrstvy
-- 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;

Streamy + úlohy: imperativní

  • Kontrola nad tím, co se spustí a kdy
  • Vhodné pro větvení, složitou logiku a operační pipeline
-- You control every step
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
Automatizace datových pipeline ve 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
Automatizace datových pipeline ve Snowflake

Pojďme procvičovat!

Automatizace datových pipeline ve Snowflake

Preparing Video For Download...