Kürz­lich hat Snow­flake die Arbeit mit Python aus Snow­flake her­aus ein wenig ver­bes­sert. ‚Snow­flake Work­s­heets for Python‘ ist in der Public Pre­view, also für jeder­mann ver­füg­bar. Zeit, her­aus­zu­fin­den, wie es funktioniert.

Faker-Daten gene­rie­ren
Ich plane eine Serie von Blog­posts über Snow­flake Data Gover­nance in Kom­bi­na­tion mit Ala­tion. Dazu benö­tige ich einige Demo-Daten. Kürz­lich sah ich einen Blog­post mei­ner Snow­flake Data Super­hero-Kol­le­gin Maja Ferle über die Gene­rie­rung von Bei­spiel­da­ten mit Hilfe der Faker Library in Snow­park. Ich habe die­sen Blog­post als Aus­gangs­punkt genom­men, um einige gefälschte Kun­den­da­ten mit Snow­flake Work­s­heets for Python zu generieren.

Ana­conda-Python-Pakete akti­vie­ren
Um die Snow­flake Work­s­heets for Python-Funk­tion nut­zen zu kön­nen, müs­sen Sie zunächst die Ana­conda-Nut­zungs­be­din­gun­gen in Snow­sight lesen und akzep­tie­ren. Dazu müs­sen Sie die fol­gen­den Schritte ausführen:

  1. Wäh­len Sie die ORGADMIN-Rolle
  2. Gehen Sie zu Admin, Abrech­nung & Bedingungen
  3. Akti­vie­ren Sie Ana­conda Python Pakete
  4. Bestä­ti­gen & Fortfahren

In Ana­conda ver­füg­bare Pakete
Zuerst müs­sen Sie sicher­stel­len, dass die benö­tig­ten Pakete in Ana­conda ver­füg­bar sind, indem Sie ent­we­der in der Doku­men­ta­tion nach­se­hen oder die fol­gende Abfrage ausführen:

SELECT distinct package_name
FROM   information_schema.packages 
WHERE  language = 'python' 
;

Wenn Sie bestimmte Pakete und ihre Ver­sio­nen aus­wäh­len möch­ten, füh­ren Sie die fol­gende Abfrage aus. In die­sem Bei­spiel suchen wir nach „faker“ und „pan­das“.

Es kann not­wen­dig sein, Pakete ein­zu­bin­den, die nicht in Ana­conda ver­füg­bar sind. Gemäß der Doku­men­ta­tion kön­nen Sie eine Python-Datei aus einer Stufe zu einem Arbeits­blatt hinzufügen.

Vor­be­rei­ten des Python-Arbeits­blatts
Bevor Sie mit der Ent­wick­lung in den Snow­flake-Arbeits­blät­tern für Python begin­nen, muss das Arbeits­blatt vor­be­rei­tet werden.

  1. Wäh­len Sie das Python-Arbeitsblatt
  2. Wäh­len Sie eine Datenbank
  3. Wäh­len Sie ein Lagerhaus
  4. Defi­nie­ren Sie, wie das Arbeits­blatt aus­ge­führt wer­den soll – legen Sie den „Hand­ler“ fest (die Funk­tion, die bei der Aus­füh­rung des Arbeits­blatts auf­ge­ru­fen wer­den soll) – legen Sie den „Rück­ga­be­typ“ fest (die Art des Ergeb­nis­ses, das vom „Hand­ler“ zurück­ge­ge­ben wird)
  5. Wäh­len Sie die erfor­der­li­chen Pakete aus – wäh­len Sie zunächst das Paket aus und impor­tie­ren Sie es dann in das Arbeitsblatt.
  6. Ver­su­chen Sie, den Bei­spiel­code aus­zu­füh­ren, um sicher­zu­stel­len, dass alles funktioniert.

Ent­wi­ckeln in Snow­flake-Arbeits­blät­tern für Python
Wenn Sie ein neues Python-Arbeits­blatt star­ten, wird das Blatt mit einem Bei­spiel­code gefüllt. Die­ser Code kann leicht an die eige­nen Bedürf­nisse ange­passt wer­den. Der Code, den ich für die Erstel­lung einer ein­fa­chen Kun­den­ta­belle benö­tigte, befin­det sich auf GitHub.

  1. Fügen Sie den Code in das Python-Arbeits­blatt ein und füh­ren Sie den Code aus
  2. Betrach­ten Sie die Ergebnisse
  3. In die­sem Fall wird durch das Skript eine Tabelle (neu) erstellt und gela­den – sehen Sie sich die Ergeb­nisse an, indem Sie aus der neu erstell­ten Tabelle auswählen

Hin­weis: Wenn Sie den Code über die Snow­sight-Benut­zer­ober­flä­che aus­füh­ren, kommt es zu einer zusätz­li­chen Aus­füh­rungs­zeit von 10 bis 20 Sekun­den, da er bei jedem Lauf als tem­po­räre Stored Pro­ce­dure aus­ge­führt wird. Wenn Sie ihn als per­ma­nente Stored Pro­ce­dure regis­trie­ren, ent­fällt diese zusätz­li­che Ausführungszeit.

Bereit­stel­len des Codes als Stored Pro­ce­dure
Mit einem ein­fa­chen Klick auf eine Schalt­flä­che kön­nen Sie Ihr Python-Skript als per­ma­nente Stored Pro­ce­dure bereitstellen.

  1. Kli­cken Sie auf „Bereitstellen/Deploy“.
  2. Benen­nen Sie die Stored Pro­ce­dure – Name, Beschrei­bung, Over­write exis­ting (Y/N)
  3. Pro­ze­dur aufrufen
  4. Über­prü­fen Sie die Ergeb­nisse in der Tabelle

Abschlie­ßende Erklä­run­gen
Python-Arbeits­blät­ter für Snow­flake sind jetzt in der öffent­li­chen Vor­schau, was bedeu­tet, dass sie für jeden ver­füg­bar sind. Ein nati­ver Python-Code-Edi­tor in Snow­Sight, ein­schließ­lich Intel­li­Sense mit Auto­ver­voll­stän­di­gung, Sow­park und Unter­stüt­zung für Biblio­the­ken von Dritt­an­bie­tern, ent­we­der über Ana­conda oder durch manu­el­les Hoch­la­den von benut­zer­de­fi­nier­ten Paketen.

Die Bereit­stel­lung der Python-Skripte als Python Stored Pro­ce­du­res ist ein­fach und ermög­licht die auto­ma­ti­sche Pla­nung über Snow­flake Tasks.

Quelle: daana­ly­tics