Kürzlich hat Snowflake die Arbeit mit Python aus Snowflake heraus ein wenig verbessert. ‚Snowflake Worksheets for Python‘ ist in der Public Preview, also für jedermann verfügbar. Zeit, herauszufinden, wie es funktioniert.
Faker-Daten generieren
Ich plane eine Serie von Blogposts über Snowflake Data Governance in Kombination mit Alation. Dazu benötige ich einige Demo-Daten. Kürzlich sah ich einen Blogpost meiner Snowflake Data Superhero-Kollegin Maja Ferle über die Generierung von Beispieldaten mit Hilfe der Faker Library in Snowpark. Ich habe diesen Blogpost als Ausgangspunkt genommen, um einige gefälschte Kundendaten mit Snowflake Worksheets for Python zu generieren.
Anaconda-Python-Pakete aktivieren
Um die Snowflake Worksheets for Python-Funktion nutzen zu können, müssen Sie zunächst die Anaconda-Nutzungsbedingungen in Snowsight lesen und akzeptieren. Dazu müssen Sie die folgenden Schritte ausführen:
- Wählen Sie die ORGADMIN-Rolle
- Gehen Sie zu Admin, Abrechnung & Bedingungen
- Aktivieren Sie Anaconda Python Pakete
- Bestätigen & Fortfahren
In Anaconda verfügbare Pakete
Zuerst müssen Sie sicherstellen, dass die benötigten Pakete in Anaconda verfügbar sind, indem Sie entweder in der Dokumentation nachsehen oder die folgende Abfrage ausführen:
SELECT distinct package_name
FROM information_schema.packages
WHERE language = 'python'
;
Wenn Sie bestimmte Pakete und ihre Versionen auswählen möchten, führen Sie die folgende Abfrage aus. In diesem Beispiel suchen wir nach „faker“ und „pandas“.
Es kann notwendig sein, Pakete einzubinden, die nicht in Anaconda verfügbar sind. Gemäß der Dokumentation können Sie eine Python-Datei aus einer Stufe zu einem Arbeitsblatt hinzufügen.
Vorbereiten des Python-Arbeitsblatts
Bevor Sie mit der Entwicklung in den Snowflake-Arbeitsblättern für Python beginnen, muss das Arbeitsblatt vorbereitet werden.
- Wählen Sie das Python-Arbeitsblatt
- Wählen Sie eine Datenbank
- Wählen Sie ein Lagerhaus
- Definieren Sie, wie das Arbeitsblatt ausgeführt werden soll – legen Sie den „Handler“ fest (die Funktion, die bei der Ausführung des Arbeitsblatts aufgerufen werden soll) – legen Sie den „Rückgabetyp“ fest (die Art des Ergebnisses, das vom „Handler“ zurückgegeben wird)
- Wählen Sie die erforderlichen Pakete aus – wählen Sie zunächst das Paket aus und importieren Sie es dann in das Arbeitsblatt.
- Versuchen Sie, den Beispielcode auszuführen, um sicherzustellen, dass alles funktioniert.
Entwickeln in Snowflake-Arbeitsblättern für Python
Wenn Sie ein neues Python-Arbeitsblatt starten, wird das Blatt mit einem Beispielcode gefüllt. Dieser Code kann leicht an die eigenen Bedürfnisse angepasst werden. Der Code, den ich für die Erstellung einer einfachen Kundentabelle benötigte, befindet sich auf GitHub.
- Fügen Sie den Code in das Python-Arbeitsblatt ein und führen Sie den Code aus
- Betrachten Sie die Ergebnisse
- In diesem Fall wird durch das Skript eine Tabelle (neu) erstellt und geladen – sehen Sie sich die Ergebnisse an, indem Sie aus der neu erstellten Tabelle auswählen
Hinweis: Wenn Sie den Code über die Snowsight-Benutzeroberfläche ausführen, kommt es zu einer zusätzlichen Ausführungszeit von 10 bis 20 Sekunden, da er bei jedem Lauf als temporäre Stored Procedure ausgeführt wird. Wenn Sie ihn als permanente Stored Procedure registrieren, entfällt diese zusätzliche Ausführungszeit.
Bereitstellen des Codes als Stored Procedure
Mit einem einfachen Klick auf eine Schaltfläche können Sie Ihr Python-Skript als permanente Stored Procedure bereitstellen.
- Klicken Sie auf „Bereitstellen/Deploy“.
- Benennen Sie die Stored Procedure – Name, Beschreibung, Overwrite existing (Y/N)
- Prozedur aufrufen
- Überprüfen Sie die Ergebnisse in der Tabelle
Abschließende Erklärungen
Python-Arbeitsblätter für Snowflake sind jetzt in der öffentlichen Vorschau, was bedeutet, dass sie für jeden verfügbar sind. Ein nativer Python-Code-Editor in SnowSight, einschließlich IntelliSense mit Autovervollständigung, Sowpark und Unterstützung für Bibliotheken von Drittanbietern, entweder über Anaconda oder durch manuelles Hochladen von benutzerdefinierten Paketen.
Die Bereitstellung der Python-Skripte als Python Stored Procedures ist einfach und ermöglicht die automatische Planung über Snowflake Tasks.
Quelle: daanalytics