Snowflake में डेटा पाइपलाइन ऑटोमेशन
Emily Melhuish
Technical Curriculum Developer, Snowflake
डायनेमिक टेबल्स:

Streams और tasks:

घोषणात्मक पाइपलाइन ऑटोमेशन
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 मान | प्रभाव |
|---|---|
'5 minutes' |
टेबल 5 मिनट से अधिक बासी नहीं — बार‑बार रिफ्रेश |
'1 hour' |
कम बार रिफ्रेश — कम compute खपत |
DOWNSTREAM |
डाउनस्ट्रीम निर्भरों से लग निकले — चेन टेबल्स के लिए आदर्श |
इनक्रिमेंटल रिफ्रेश
-- इनक्रिमेंटल‑अनुकूल:
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments
GROUP BY region;
पूर्ण रिफ्रेश

DOWNSTREAM लग अगले टेबल की ज़रूरत मानता है — अतिरिक्त रिफ्रेश नहींडायनेमिक टेबल्स: घोषणात्मक
-- परिणाम 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();
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 में डेटा पाइपलाइन ऑटोमेशन