Integration von Snowpark in die SnapLogic-Plattform, Schritt für Schritt

Ram Bysani Kopfbild
7 Minuten lesen

Snowpark ist eine Reihe von Bibliotheken und Laufzeiten in der Snowflake-Cloud-Datenplattform, die es Entwicklern ermöglichen, Python-, Java- oder Scala-Code, der nicht von SQL stammt, ohne Datenbewegungen in der elastischen Verarbeitungsmaschine von Snowflake sicher zu verarbeiten. 

Dies ermöglicht die Abfrage und Verarbeitung von Daten in großem Umfang in Snowflake. Die Operationen von Snowpark können passiv auf dem Server ausgeführt werden, was die Verwaltungskosten senkt und eine zuverlässige Leistung gewährleistet.

Snowpark-Betriebsdiagramm mit Python, Java und Scala

Wie funktioniert Snowpark mit SnapLogic?

Die Intelligent Integration Platform (IIP) von SnapLogic bietet eine einfache Möglichkeit, von Entwicklern erstellte, benutzerdefinierte Funktionen (UDFs) für Snowpark zu nutzen. Darüber hinaus wird das Snowflake Snap Pack verwendet, um fortschrittliches maschinelles Lernen und Data-Engineering-Anwendungsfälle mit Snowflake zu implementieren.

Beispiel für die Integration von Snowpark und SnapLogic

Im Folgenden werden die Schritte zum Aufrufen von Snowpark-Bibliotheken mit dem Remote Python Script Snap in SnapLogic erläutert:

Schritt 1: Lesen von Beispielzeilen aus einer Quelle (in diesem Fall ein CSV-Generator)

Schritt 2: Verwenden Sie den Remote Python Script Snap, um: 

  1. Aufrufen der Snowpark-Python-Bibliotheken
  2. Zusätzliche Operationen mit den Quelldatenzeilen durchführen

Schritt 3: Laden der verarbeiteten Daten in eine Snowflake-Zieltabelle

SnapLogic-Pipeline zum Laden von CSV in Snowpark und in Snowflake

SnapLogic IIP-Konfigurationen

Auf der SnapLogic-Seite muss der Remote Python Executor (RPE) mit Hilfe der folgenden Schritte installiert werden:

Schritte 1 und 2: Die ersten beiden Schritte zur Installation des RPE werden in der SnapLogic IIP-Dokumentation ausführlich erläutert. Der standardmäßige RPE-Zugangsport ist 5301, sodass die "eingehende Kommunikation" an diesem Port aktiviert werden muss.

  • Wenn die Snaplex-Instanz ein Groundplex ist, kann das RPE als derselbe Snaplex-Knoten installiert werden
  • Wenn es sich bei der Snaplex-Instanz um einen Cloudplex handelt, kann das RPE wie jeder andere Remote-Knoten installiert werden, auf den der Snaplex zugreift

Schritt 3 : Im nächsten Schritt müssen Sie das benutzerdefinierte RPE-Paket installieren, indem Sie die Schritte im Abschnitt "Benutzerdefiniertes Image" der Dokumentation ausführen. Um die Snowpark-Bibliotheken auf dem Knoten zu installieren, aktualisieren Sie die Datei requirements.txt wie folgt:

Anforderungen.txt
snaplogic
numpy==1.22.1
snowflake-snowpark-python
snowflake-snowpark-python[pandas]

Die Snaplex-Instanz in unserem Beispiel ist ein Cloudplex, und der entfernte Knoten ist eine Azure Ubuntu VM. Das benutzerdefinierte RPE-Paket wird auf der Azure-VM installiert.

Schneeflocken-Konfigurationen

Auf der Snowflake-Seite müssen wir Konfigurationen festlegen und eine Zieltabelle erstellen.

Schritt 1: Aktualisieren Sie die Snowflake-"Netzwerkrichtlinien", um die SnapLogic- und RPE-Knoten zuzulassen. Für dieses Beispiel verwenden wir die Tabelle CUSTOMER_PY unter dem Schema Public.

Demo_SB Konto Adim

Schritt 2: Erstellen Sie das Snowflake-Konto in SnapLogic mit den erforderlichen Parametern. Das in unserem Beispiel verwendete Konto ist ein Snowflake S3-Datenbankkonto.

SnapLogic-Einstellungen bearbeiten Seite für Snowflake_RB
Bildschirm Snowflake_Load auf SnapLogic

SnapLogic Pipeline-Ablauf (Remote_Python_Snowpark_Sample)

Schritt 1: Der CSV Generator Snap generiert die Quelldaten. In unserem Beispiel gibt es zwei Quelldatensätze mit den Werten 15 und 20.

CSV-Tabelle bearbeiten

Schritt 2: Das Remote-Python-Skript Snapführt Python-Code aus, um die Snowpark-Python-Bibliotheken aufzurufen und zusätzliche Operationen mit den Quelldatenzeilen durchzuführen. Nachfolgend sehen Sie einen Ausschnitt des Python-Codes:

Python-Codefragment

Der Python-Code führt die folgenden Operationen durch:

  1. Konstruieren Sie Snowpark DataFrames, um Daten aus den Snowflake-Tabellen abzurufen. Datensätze filtern, um Daten für den C_NATIONKEY und die zugehörigen Daten der Spalte C_COMMENT für jede Eingabezeile aus dem Upstream-Snap (vom CSV-Generator) abzurufen
  2. Erstellen Sie eine UDF und führen Sie sie aus, um den aktuellen Zeitstempel an die Bezugsdatensätze in der Spalte C_COMMENT anzuhängen. Der Name der Beispiel-UDF lautet append_data.
  3. Rückgabe der Werte von C_NATIONKEY und der aktualisierten C_COMMENT-Datensätze an den nachgeschalteten Mapper Snap.

Schritt 3: Validieren Sie die SnapLogic-Pipeline und beheben Sie alle Validierungsfehler.

Schritt 4: Führen Sie die Pipeline aus und überprüfen Sie die Daten in der Zieldatenbank auf Snowflake.

Pipeline-Ergebnisse ausführen

Schritt 5: Herzlichen Glückwunsch, Sie haben Snowpark und SnapLogic erfolgreich integriert!

Ram Bysani Kopfbild
Unternehmensarchitekt bei SnapLogic
Integration von Snowpark in die SnapLogic-Plattform, Schritt für Schritt

Wir stellen ein!

Entdecken Sie Ihre nächste große Karrierechance.