Tabel Dinamis

Otomatisasi Data Pipeline di Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Tabel Dinamis vs Streams dan Tasks

Tabel Dinamis:

Tangkapan layar 11/05/2026 pukul 11.14.23.png

  • Sederhanakan transformasi pipeline data dengan pernyataan SQL deklaratif
  • Proses refresh otomatis
  • Snowflake mendeteksi, menjadwalkan, dan menggabungkan

Streams dan tasks:

Tangkapan layar 11/05/2026 pukul 11.14.13.png

1 * Materi Pembelajaran Snowflake
Otomatisasi Data Pipeline di Snowflake

Apa itu Tabel Dinamis?

Otomasi pipeline deklaratif

  • Konten ditetapkan oleh kueri SELECT — jelaskan hasilnya, Snowflake mengelola refresh
  • Tanpa konfigurasi stream, tanpa penjadwalan task
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;
Otomatisasi Data Pipeline di Snowflake

TARGET_LAG: Kurangi Ketertinggalan Data

Kontrak freshness antara Anda dan Snowflake

Nilai TARGET_LAG Efek
'5 minutes' Tabel tidak lebih dari 5 menit kedaluwarsa — sering di-refresh
'1 hour' Refresh lebih jarang — konsumsi komputasi lebih rendah
DOWNSTREAM Turunkan lag dari dependensi hilir — ideal untuk tabel berantai
Otomatisasi Data Pipeline di Snowflake

Refresh Penuh vs Inkremental

Refresh inkremental

  • Melacak baris sumber yang berubah secara tepat
  • Menyegarkan hanya baris terdampak — lebih cepat, lebih hemat skala besar
-- Ramah inkremental: 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

Refresh penuh

  • Memproses ulang seluruh kueri
  • Diperlukan untuk agregasi tertentu dan operasi himpunan
Otomatisasi Data Pipeline di Snowflake

Merantai Tabel Dinamis

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

  • Tiap transformasi adalah tabel dinamis terpisah dengan kueri sendiri
  • Penyegaran mengalir otomatis sepanjang rantai
  • Lag DOWNSTREAM mengikuti kebutuhan tabel berikutnya — tanpa penyegaran berlebih
Otomatisasi Data Pipeline di Snowflake

Tabel Dinamis vs Streams dan Tasks

Tabel Dinamis: deklaratif

  • Jelaskan output; Snowflake mengelola refresh, mudah dikelola
  • Terbaik untuk lapisan analitik/pelaporan
-- Deklarasikan hasil untuk Snowflake 
CREATE DYNAMIC TABLE logistics.summary
  TARGET_LAG = '1 hour' 
  WAREHOUSE = harbr_wh
AS SELECT region, COUNT(*) 
FROM shipments 
GROUP BY 1;

Streams + Tasks: imperatif

  • Kendalikan apa yang berjalan dan kapan
  • Cocok untuk logika kustom bercabang dan pipeline operasional yang kompleks
-- Anda mengendalikan setiap langkah
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
Otomatisasi Data Pipeline di 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
Otomatisasi Data Pipeline di Snowflake

Ayo berlatih!

Otomatisasi Data Pipeline di Snowflake

Preparing Video For Download...