Dynamiska tabeller

Automatisering av datapipelines i Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Dynamiska tabeller vs. strömmar och uppgifter

Dynamiska tabeller:

Screenshot 2026-05-11 at 11.14.23 am.png

  • Förenklar datatransformationer med deklarativa SQL-satser
  • Automatisk uppdateringsprocess
  • Snowflake identifierar, schemalägger och sammanfogar

Strömmar och uppgifter:

Screenshot 2026-05-11 at 11.14.13 am.png

1 * Snowflake Learning Material
Automatisering av datapipelines i Snowflake

Vad är dynamiska tabeller?

Deklarativ pipelineautomatisering

  • Innehållet definieras av en SELECT-fråga — beskriv resultatet, Snowflake hanterar uppdateringen
  • Ingen strömkonfiguration, inga uppgifter att schemalägga
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;
Automatisering av datapipelines i Snowflake

TARGET_LAG: Minska inaktuell data

Fräschhetskontraktet mellan dig och Snowflake

TARGET_LAG-värde Effekt
'5 minutes' Tabellen är aldrig mer än 5 minuter gammal — uppdateras ofta
'1 hour' Uppdateras mer sällan — lägre beräkningsförbrukning
DOWNSTREAM Lag härledas från nedströms beroenden — idealiskt för kedjade tabeller
Automatisering av datapipelines i Snowflake

Full vs. inkrementell uppdatering

Inkrementell uppdatering

  • Spårar exakt vilka källrader som ändrats
  • Uppdaterar bara berörda rader — snabbare och billigare i stor skala
-- Incremental-friendly: 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

Full uppdatering

  • Bearbetar hela frågan på nytt
  • Krävs för vissa aggregeringar och mängdoperationer
Automatisering av datapipelines i Snowflake

Kedja dynamiska tabeller

Pipelinediagram — delivery_events (källa) → cleaned_events (target_lag = DOWNSTREAM) → delivery_summary (target_lag = 1 HOUR)

  • Varje transformation är en separat dynamisk tabell med en egen fråga
  • Uppdateringar sprids automatiskt längs kedjan
  • DOWNSTREAM-lag anpassas efter nästa tabells behov — undviker onödiga uppdateringar
Automatisering av datapipelines i Snowflake

Dynamiska tabeller vs. strömmar och uppgifter

Dynamiska tabeller: deklarativa

  • Beskriv utdata; Snowflake hanterar uppdatering, enkelt att förvalta
  • Bäst för analys- och rapporteringslager
-- 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;

Strömmar + uppgifter: imperativa

  • Styr vad som körs och när
  • Bäst för komplex anpassad logik och operationella pipelines
-- You control every step
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
Automatisering av datapipelines i 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
Automatisering av datapipelines i Snowflake

Låt oss öva!

Automatisering av datapipelines i Snowflake

Preparing Video For Download...