Automatisierung von Datenpipelines in Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake
![]()
Benutzerdefinierte Funktionen (UDFs)
Empfohlener Startpunkt
CREATE FUNCTION delivery_tier(days INT)
RETURNS VARCHAR AS $$
CASE WHEN days <= 2 THEN 'Express'
WHEN days <= 5 THEN 'Standard'
ELSE 'Delayed' END $$;
Wenn SQL nicht reicht
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]) $$;

UDFs sitzen in der Transformationsebene – zwischen Rohspeicher und Reporting
SELECT aufgerufen; geben pro Zeile einen Wert zurückSECURE hinzufügen, um die Definition für andere zu verbergenCALL aufrufen
CREATE OR REPLACE PROCEDURE archive_old_shipments(cutoff INT)
RETURNS STRING LANGUAGE SQL AS $$
DECLARE -- 1. Variablen deklarieren
rows_moved INT DEFAULT 0;
BEGIN -- 2. Prozedur starten
INSERT INTO shipments_archive -- 3. SQL-Befehle ausführen
SELECT * FROM shipments WHERE delivery_days > :cutoff;
rows_moved := SQLROWCOUNT;
DELETE FROM shipments WHERE delivery_days > :cutoff;
RETURN 'Archived ' || rows_moved -- 4. Ergebnis zurückgeben
|| ' shipments.';
END; -- 5. Prozedur beenden
$$;
| UDF | Stored Procedure | |
|---|---|---|
| Aufruf in | SELECT |
CALL |
| Rückgabe | Ein Wert pro Zeile | Einzelner Wert |
| DML ausführbar | Nein | Ja |
| Sprachen | SQL, Python, Java, JS | SQL (Snowflake Scripting), Python, Java, JS, Scala |
| Einsatz in Pipeline | Daten transformieren | Logik orchestrieren |
Automatisierung von Datenpipelines in Snowflake