डायनेमिक टेबल्स

Snowflake में डेटा पाइपलाइन ऑटोमेशन

Emily Melhuish

Technical Curriculum Developer, Snowflake

डायनेमिक टेबल्स बनाम Streams और Tasks

डायनेमिक टेबल्स:

Screenshot 2026-05-11 at 11.14.23 am.png

  • SQL घोषणात्मक स्टेटमेंट्स से डेटा पाइपलाइन ट्रांसफॉर्मेशन सरल करें
  • स्वतः रिफ्रेश प्रक्रिया
  • Snowflake डिटेक्ट, शेड्यूल और मर्ज करता है

Streams और tasks:

Screenshot 2026-05-11 at 11.14.13 am.png

1 * Snowflake शिक्षण सामग्री
Snowflake में डेटा पाइपलाइन ऑटोमेशन

डायनेमिक टेबल्स क्या हैं?

घोषणात्मक पाइपलाइन ऑटोमेशन

  • सामग्री SELECT क्वेरी से तय — परिणाम बताइए, Snowflake रिफ्रेश संभाले
  • कोई स्ट्रीम कॉन्फ़िगरेशन नहीं, कोई टास्क शेड्यूलिंग नहीं
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 में डेटा पाइपलाइन ऑटोमेशन

TARGET_LAG: बासीपन घटाएँ

आप और Snowflake के बीच ताज़गी अनुबंध

TARGET_LAG मान प्रभाव
'5 minutes' टेबल 5 मिनट से अधिक बासी नहीं — बार‑बार रिफ्रेश
'1 hour' कम बार रिफ्रेश — कम compute खपत
DOWNSTREAM डाउनस्ट्रीम निर्भरों से लग निकले — चेन टेबल्स के लिए आदर्श
Snowflake में डेटा पाइपलाइन ऑटोमेशन

पूर्ण बनाम इनक्रिमेंटल रिफ्रेश

इनक्रिमेंटल रिफ्रेश

  • कौन‑सी स्रोत पंक्तियाँ बदलीं, ठीक‑ठीक ट्रैक करता है
  • केवल प्रभावित पंक्तियाँ रिफ्रेश — बड़े पैमाने पर तेज़, सस्ता
-- इनक्रिमेंटल‑अनुकूल: 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

पूर्ण रिफ्रेश

  • पूरी क्वेरी दोबारा प्रोसेस करता है
  • कुछ एग्रीगेशन और सेट ऑपरेशंस के लिए आवश्यक
Snowflake में डेटा पाइपलाइन ऑटोमेशन

डायनेमिक टेबल्स को चेन करना

पाइपलाइन आरेख — delivery_events (source) → cleaned_events (target_lag = DOWNSTREAM) → delivery_summary (target_lag = 1 HOUR)

  • हर रूपांतरण अपनी क्वेरी वाला अलग डायनेमिक टेबल है
  • रिफ्रेश स्वतः चेन में आगे बढ़ते हैं
  • DOWNSTREAM लग अगले टेबल की ज़रूरत मानता है — अतिरिक्त रिफ्रेश नहीं
Snowflake में डेटा पाइपलाइन ऑटोमेशन

डायनेमिक टेबल्स बनाम Streams और Tasks

डायनेमिक टेबल्स: घोषणात्मक

  • आउटपुट बताइए; Snowflake रिफ्रेश संभालता है, प्रबंधन सरल
  • एनालिटिक्स/रिपोर्टिंग लेयर के लिए उपयुक्त
-- परिणाम Snowflake को घोषित करें 
CREATE DYNAMIC TABLE logistics.summary
  TARGET_LAG = '1 hour' 
  WAREHOUSE = harbr_wh
AS SELECT region, COUNT(*) 
FROM shipments 
GROUP BY 1;

Streams + Tasks: आदेशात्मक

  • क्या और कब चलेगा उस पर नियंत्रण
  • जटिल कस्टम लॉजिक और ऑपरेशनल पाइपलाइनों के लिए बेहतर
-- हर चरण आपका नियंत्रण
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
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
Snowflake में डेटा पाइपलाइन ऑटोमेशन

Ayo berlatih!

Snowflake में डेटा पाइपलाइन ऑटोमेशन

Preparing Video For Download...