Schreiben von gespeicherten Prozeduren mit SQL und Python¶
Sie können eine gespeicherte Prozedur schreiben, deren Handler in Python kodiert ist. Wenn Sie APIs aus der Snowpark-Bibliothek in Ihrem Handler verwenden, können Sie Abfragen, Aktualisierungen und andere Arbeiten an Snowflake-Tabellen ausführen.
Mit gespeicherten Snowpark-Prozeduren können Sie Ihre Datenpipeline in Snowflake erstellen und ausführen, wobei ein Snowflake-Warehouse als Compute-Framework dient. Erstellen Sie Ihre Datenpipeline, indem Sie die Snowpark-API für Python zum Schreiben gespeicherter Prozeduren verwenden. Um die Ausführung dieser gespeicherten Prozeduren zu planen, verwenden Sie Aufgaben (Tasks).
Weitere Informationen zu Machine Learning-Modellen und Snowpark Python finden Sie unter Training von Machine Learning-Modellen mit Snowpark Python.
Sie können gespeicherte Prozeduren für Python unter Verwendung eines Python-Arbeitsblatts oder unter Verwendung einer lokalen Entwicklungsumgebung schreiben.
Sie können während der Ausführung Ihres Handler-Codes Protokoll- und Ablaufverfolgungsdaten erfassen. Weitere Informationen dazu finden Sie unter Protokollierung, Ablaufverfolgung und Metriken.
Bemerkung
Um eine anonyme Prozedur sowohl zu erstellen als auch aufzurufen, verwenden Sie CALL (mit anonymer Prozedur). Das Erstellen und Aufrufen einer anonymen Prozedur erfordert keine Rolle mit CREATE PROCEDURE-Schemaberechtigungen.
Voraussetzungen für das lokale Schreiben von gespeicherten Prozeduren¶
Um gespeicherte Python-Prozeduren in Ihrer lokalen Entwicklungsumgebung schreiben zu können, müssen folgende Voraussetzungen erfüllt sein:
Sie müssen Version 0.4.0 oder eine neuere Version der Snowpark-Bibliothek verwenden.
Aktivieren Sie Anaconda-Pakete, damit Snowpark Python die erforderlichen Abhängigkeiten von Drittanbietern laden kann. Weitere Informationen dazu finden Sie unter Verwenden von Drittanbieterpaketen aus Anaconda.
Folgende Versionen von Python werden unterstützt:
3.9
3.10
3.11
Stellen Sie sicher, dass Ihre Entwicklungsumgebung für die Verwendung der Snowpark-Bibliothek eingerichtet ist. Weitere Informationen dazu finden Sie unter Einrichten Ihrer Entwicklungsumgebung für Snowpark.
Verwenden von Drittanbieterpaketen aus Anaconda¶
Sie können beim Erstellen von gespeicherten Prozeduren in Python angeben, dass Anaconda-Pakete installiert werden sollen. Eine Liste der Drittanbieterpakete von Anaconda finden Sie im Anaconda-Snowflake-Kanal. Diese Drittanbieter-Pakete werden von Anaconda erstellt und bereitgestellt. Sie können den Snowflake-Conda-Kanal für lokale Tests und Entwicklung kostenlos auf Grundlage der ergänzenden Bedingungen für eingebettete Software in den Anaconda-Nutzungsbedingungen verwenden.
Informationen zu bestehenden Einschränkungen finden Sie unter Beschränkungen bei gespeicherten Python-Prozeduren.
Erste Schritte¶
Bevor Sie die von Anaconda in Snowflake bereitgestellten Pakete verwenden können, müssen Sie die Bedingungen für externe Angebote anerkennen.
Bemerkung
Sie müssen die ORGADMIN-Rolle verwenden, um die Bedingungen zu akzeptieren. Sie müssen die Bedingungen für externe Angebote nur einmal für Ihr Snowflake-Konto akzeptieren. Wenn Sie keinen Zugriff auf die Rolle ORGADMIN haben, siehe Aktivieren der ORGADMIN-Rolle für ein Konto.
Melden Sie sich bei Snowsight an.
Wählen Sie Admin » Billing & Terms aus.
Wählen Sie im Abschnitt Anaconda die Option Enable aus.
Klicken Sie im Anaconda Packages-Dialog auf den Link, um die Bedingungen für externe Angebote zu prüfen.
Wenn Sie mit den Bedingungen einverstanden sind, klicken Sie auf Acknowledge & Continue.
Wenn Sie beim Versuch, die Bedingungen für externe Angebote zu akzeptieren, auf eine Fehlermeldung stoßen, kann dies daran liegen, dass in Ihrem Benutzerprofil Informationen fehlen, wie z. B. ein Vorname, ein Nachname oder eine E-Mail-Adresse. Wenn Sie Administratorberechtigungen haben, finden Sie unter Benutzerdetails zum Benutzerprofil hinzufügen entsprechende Informationen zum Aktualisieren Ihres Profils in Snowsight. Wenden Sie sich andernfalls an einen Administrator, um Ihr Konto zu aktualisieren.
Bemerkung
Wenn Sie die Bedingungen für externe Angebote von Snowflake wie oben beschrieben nicht anerkennen, können Sie dennoch gespeicherte Prozeduren verwenden, allerdings mit folgenden Einschränkungen:
Sie können keine Pakete von Drittanbietern aus Anaconda verwenden.
Sie können Snowpark Python weiterhin als Paket in einer gespeicherten Prozedur angeben, aber Sie können keine bestimmte Version angeben.
Sie können die
to_pandas
-Methode nicht zum Interagieren mit einemDataFrame
-Objekt verwenden.
Anzeigen und Verwenden von Paketen¶
Sie können alle verfügbaren Pakete und deren Versionsinformationen anzeigen, indem Sie die Information Schema-Ansicht PACKAGES abfragen:
SELECT * FROM information_schema.packages WHERE LANGUAGE = 'python';
Weitere Informationen finden Sie unter Verwenden von Drittanbieter-Paketen in der Snowflake Python UDF Dokumentation.
Aufrufen einer gespeicherten Prozedur¶
Nachdem Sie eine gespeicherte Prozedur erstellt haben, können Sie diese auf folgende Weise aufrufen: