Dinamik Tablolar

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Emily Melhuish

Technical Curriculum Developer, Snowflake

Dinamik Tablolar vs Streams ve Tasks

Dinamik tablolar:

Ekran görüntüsü 11.14.23, 11 May 2026.png

  • SQL bildirime dayalı ifadelerle veri hattı dönüşümünü basitleştirir
  • Otomatik yenileme süreci
  • Snowflake algılar, zamanlar ve birleştirir

Streams ve tasks:

Ekran görüntüsü 11.14.13, 11 May 2026.png

1 * Snowflake Öğrenim Materyali
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Dinamik Tablolar Nedir?

Bildirim temelli hat otomasyonu

  • İçerik bir SELECT sorgusuyla tanımlanır — sonucu betimleyin, Snowflake yenilemeyi yönetir
  • Akış yapılandırması yok, zamanlanacak görev yok
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;
Snowflake'te Veri Pipeline'larını Otomatikleştirme

TARGET_LAG: Bayatlığı Azaltın

Siz ve Snowflake arasındaki tazelik sözleşmesi

TARGET_LAG değeri Etki
'5 minutes' Tablo en fazla 5 dakikalık gecikmede olur – sık yenilenir
'1 hour' Daha seyrek yenilenir – daha düşük hesaplama maliyeti
DOWNSTREAM Gecikmeyi aşağı akış bağımlılardan çıkarır – zincirli tablolar için idealdir
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Tam vs Artımlı Yenileme

Artımlı yenileme

  • Hangi kaynak satırların değiştiğini tam olarak izler
  • Yalnızca etkilenen satırları yeniler — ölçekte daha hızlı, daha ucuz
-- Artımlı dostu: 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

Tam yenileme

  • Tüm sorguyu yeniden işler
  • Bazı toplamalar ve küme işlemleri için gereklidir
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Dinamik Tabloları Zincirleme

Boru hattı diyagramı — delivery_events (kaynak) → cleaned_events (target_lag = DOWNSTREAM) → delivery_summary (target_lag = 1 HOUR)

  • Her dönüşümün kendi sorgusuna sahip ayrı bir dinamik tablodur
  • Yenilemeler zincir boyunca otomatik yayılır
  • DOWNSTREAM gecikmesi, bir sonraki tablonun ihtiyacına uyar – gereksiz yenileme yok
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Dinamik Tablolar vs Streams ve Tasks

Dinamik tablolar: bildirime dayalı

  • Çıktıyı tanımlarsınız; Snowflake yenilemeyi yönetir, yönetimi kolaydır
  • Analitik/raporlama katmanları için idealdir
-- Sonucu Snowflake'e bildir
CREATE DYNAMIC TABLE logistics.summary
  TARGET_LAG = '1 hour' 
  WAREHOUSE = harbr_wh
AS SELECT region, COUNT(*) 
FROM shipments 
GROUP BY 1;

Streams + Tasks: buyurgan

  • Neyin ne zaman çalışacağını siz belirlersiniz
  • Karmaşık dallanan özel mantık ve operasyonel hatlar için en iyisi
-- Her adımı siz kontrol edersiniz
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
Snowflake'te Veri Pipeline'larını Otomatikleştirme

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
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Hadi pratik yapalım!

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Preparing Video For Download...