Snowflake में डेटा पाइपलाइन ऑटोमेशन
Emily Melhuish
Technical Curriculum Developer, Snowflake
CDC: Change Data Capture

स्ट्रीम क्या करती है

| स्ट्रीम प्रकार | क्या कैप्चर करता है | उपयुक्त उपयोग |
|---|---|---|
| स्टैंडर्ड | सभी टेबल प्रकार और व्यूज़; सभी DML बदलाव — इन्सर्ट, अपडेट, डिलीट ट्रैक करता है | जहाँ कोई भी रो बदल सकती है (जैसे shipments) |
| एपेंड-ओनली | सभी टेबल प्रकार और व्यूज़, बाहरी टेबल छोड़कर — केवल रो इन्सर्ट ट्रैक | एक-बार-इन्सर्ट टेबल (जैसे delivery events) — अधिक कुशल |
| इन्सर्ट-ओनली | बाहरी रूप से प्रबंधित Apache Iceberg और एक्सटर्नल टेबल — केवल रो इन्सर्ट ट्रैक | एक्सटर्नल टेबल |
डायरेक्टरी टेबल्स किसी स्टेज के फ़ाइल मेटाडेटा दिखाती हैं (नाम, आकार, अंतिम संशोधन टाइमस्टैम्प)
shipments टेबल पर स्टैंडर्ड स्ट्रीम
CREATE STREAM shipments_stream
ON TABLE logistics.shipments;
delivery events टेबल पर एपेंड-ओनली स्ट्रीम
CREATE STREAM delivery_events_stream
ON TABLE logistics.delivery_events
APPEND_ONLY = TRUE;
SELECT product, quantity, METADATA$ACTION, METADATA$ISUPDATE, METADATA$ROW_ID
FROM shipments_stream;
METADATA$ACTION: INSERT या DELETEMETADATA$ISUPDATE: अपडेट जोड़ी का भाग होने पर TRUEMETADATA$ROW_ID: यूनिक फिजिकल रो पहचानकर्ताMETADATA$ISUPDATE = TRUE होता है


CREATE TASK logistics.sync_shipments
WAREHOUSE = compute_wh
SCHEDULE = '5 MINUTE'
WHEN SYSTEM$STREAM_HAS_DATA('logistics.staging_shipments_stream')
AS
INSERT INTO logistics.shipments
SELECT shipment_id, region, carrier, delivery_days
FROM logistics.staging_shipments_stream
WHERE METADATA$ACTION = 'INSERT';
Snowflake में डेटा पाइपलाइन ऑटोमेशन