यूज़र-डिफ़ाइंड फ़ंक्शंस और स्टोर्ड प्रोसिजर्स

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

Emily Melhuish

Technical Curriculum Developer, Snowflake

UDF क्या है?

nanobanana: half: दो सार ताले के आइकन साथ-साथ, एक खुला और एक बंद, फ्लैट मिनिमलिस्ट डिज़ाइन, DataCamp नेवी ब्लू और ग्रीन रंग, सफेद पृष्ठभूमि, कोई पाठ नहीं

यूज़र-डिफ़ाइंड फ़ंक्शंस

  • बिल्ट-इन SQL फ़ंक्शंस से आगे कस्टम ऑपरेशंस
  • SQL, Python, Java, Scala या JavaScript में लिखे जाते हैं
  • कोई DDL या DML नहीं — केवल मान लौटाएँ
  • स्टैंडर्ड या SECURE (कॉलर्स से लॉजिक छुपाता है)
  • प्रति पंक्ति स्केलर मान या एक टेबल लौटाता है
Snowflake में डेटा पाइपलाइन ऑटोमेशन

SQL UDFs

अनुशंसित शुरुआती बिंदु

CREATE FUNCTION delivery_tier(days INT)
RETURNS VARCHAR AS $$
  CASE WHEN days <= 2 THEN 'Express'
       WHEN days <= 5 THEN 'Standard'
       ELSE 'Delayed' END $$;
Snowflake में डेटा पाइपलाइन ऑटोमेशन

Python व अन्य प्रोग्रामिंग भाषा UDFs

जब SQL पर्याप्त न हो

CREATE FUNCTION parse_weight(label STRING)
RETURNS FLOAT LANGUAGE PYTHON
RUNTIME_VERSION = '3.9' HANDLER = 'parse'
AS $$ def parse(s): return float(s.split('kg')[0]) $$;
Snowflake में डेटा पाइपलाइन ऑटोमेशन

पाइपलाइन में UDFs

 

 

mermaid: UDF ट्रांसफ़ॉर्मेशन लेयर पाइपलाइन

UDFs ट्रांसफ़ॉर्मेशन लेयर में होते हैं — रॉ स्टोरेज और रिपोर्टिंग के बीच

  • SELECT के अंदर कॉल; प्रति पंक्ति एक मान लौटाएँ
  • कई क्वेरियों में उपयोग होने वाली बिज़नेस लॉजिक केंद्रीकृत करें
  • परिभाषा छुपाने के लिए SECURE जोड़ें
Snowflake में डेटा पाइपलाइन ऑटोमेशन

स्टोर्ड प्रोसिजर क्या है?

  • वेरिएबल घोषित करें, परिणामों पर लूप चलाएँ, त्रुटियाँ संभालें
  • कई तालिकाओं पर DML चलाएँ
  • CALL से स्टैंडअलोन कॉल करें

mermaid: datacamp-purple: स्टोर्ड प्रोसिजर ऑर्केस्ट्रेशन फ़्लो

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

स्टोर्ड प्रोसिजर: Snowflake स्क्रिप्टिंग

CREATE OR REPLACE PROCEDURE archive_old_shipments(cutoff INT)
RETURNS STRING LANGUAGE SQL AS $$
DECLARE                                    -- 1. Declare variables
    rows_moved INT DEFAULT 0;
BEGIN                                      -- 2. Begin the procedure
    INSERT INTO shipments_archive          -- 3. Execute SQL commands
        SELECT * FROM shipments WHERE delivery_days > :cutoff;
    rows_moved := SQLROWCOUNT;
    DELETE FROM shipments WHERE delivery_days > :cutoff;
    RETURN 'Archived ' || rows_moved       -- 4. Return the result
        || ' shipments.';
END;                                       -- 5. End the procedure
$$;
Snowflake में डेटा पाइपलाइन ऑटोमेशन

UDF बनाम स्टोर्ड प्रोसिजर

UDF स्टोर्ड प्रोसिजर
कॉल कहाँ SELECT CALL
रिटर्न प्रति पंक्ति एक मान एक एकल मान
DML चला सकता है नहीं हाँ
भाषाएँ SQL, Python, Java, JS SQL (Snowflake Scripting), Python, Java, JS, Scala
पाइपलाइन में उपयोग डेटा ट्रांसफ़ॉर्म लॉजिक ऑर्केस्ट्रेट
Snowflake में डेटा पाइपलाइन ऑटोमेशन

¡Vamos a practicar!

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

Preparing Video For Download...