Tutorial: Erste Schritte mit der leistungsstarken Snowpipe Streaming-Architektur SDK¶
Dieses Tutorial enthält eine Schritt-für-Schritt-Anleitung zum Einrichten und Ausführen einer Demo-Anwendung, die die neue High-Performance-Architektur mit snowpipe-streaming SDK nutzt.
Voraussetzungen¶
Bevor Sie die Demo ausführen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:
Snowflake-Konto: Vergewissern Sie sich, dass Sie Zugriff auf ein Snowflake-Konto haben. Sie benötigen einen Benutzer mit ausreichenden Berechtigungen (z. B. ACCOUNTADMIN oder USERADMIN für die Ersteinrichtung), um den dedizierten Benutzer und die kundenspezifische Rolle zu erstellen, die unter Schritt 1: Konfigurieren Sie Snowflake-Objekte beschrieben sind.
Netzwerkzugriff: Stellen Sie sicher, dass Ihr Netzwerk ausgehende Konnektivität zu Snowflake und Amazon S3 oder Google Cloud Platform (GCS) oder Azure Blob Storage zulässt. Passen Sie die Firewall-Regeln falls erforderlich an, da die SDK REST API-Aufrufe an Snowflake und an Ihren Cloudspeicheranbieter tätigt.
Um die Konnektivität mit dem Netzwerk zu überprüfen, verwenden Sie den folgenden Befehl:
Java-Entwicklungsumgebung Installieren Sie Java 11 oder höher und Maven für die Verwaltung von Abhängigkeiten.
Python: Erfordert Python Version 3.9 oder höher.
Systemanforderungen: Das SDK erfordert glibc-Version 2.26 oder höher. Sie können Ihre aktuelle glibc-Version wie folgt überprüfen:
Snowpipe Streaming SDKs und der Beispielcode:
Für AWS: Beziehen Sie das Java SDK oder Python SDK (beliebige Version).
Für Azure: Erfordert SDK Version 1.1.0 oder höher.
Für GCP: Erfordert SDK Version 1.1.0 oder höher.
Laden Sie den Beispielcode für Ihre bevorzugte Sprache aus den Snowpipe Streaming SDK-Beispielen im GitHub-Repository herunter.
Erste Schritte¶
In diesem Abschnitt werden die Schritte beschrieben, die zur Einrichtung und Ausführung der Demo-Anwendung erforderlich sind.
Schritt 1: Konfigurieren Sie Snowflake-Objekte¶
Bevor Sie das snowpipe-streaming SDK verwenden können, müssen Sie eine Zieltabelle innerhalb Ihrer Snowflake-Umgebung erstellen. Im Gegensatz zur klassischen Architektur benötigt die High-Performance-Architektur ein PIPE-Objekt für die Datenaufnahme. In diesem Tutorial wird die Standard-Pipe verwendet, die automatisch zur Zeitpunkt der Datenaufnahme für Ihre Zieltabelle erstellt wird. Wenn Sie zusätzliche Features benötigen, wie z. B. Transformationen während der Übertragung oder Clustering zum Zeitpunkt der Datenaufnahme, finden Sie entsprechende Informationen unter CREATE PIPE.
Schlüsselpaar zur Authentifizierung generieren¶
Erzeugen Sie ein Schlüsselpaar aus privatem und öffentlichem Schlüssel für die Authentifizierung mit OpenSSL. Weitere Informationen dazu finden Sie unter Schlüsselpaar-Authentifizierung und Schlüsselpaar-Rotation.
Führen Sie die folgenden Befehle in Ihrem Terminal aus, um die Schlüssel zu erzeugen:
Wichtig
Speichern Sie die generierten rsa_key.p8-Dateien (privater Schlüssel) und rsa_key.pub-Dateien (öffentlicher Schlüssel) an einem sicheren Ort. Sie verwenden diese Schlüssel in den nachfolgenden Authentifizierungsschritten.
Erstellen von Datenbank, Schema und Tabelle und Konfigurieren der Benutzerauthentifizierung¶
Führen Sie folgende SQL-Befehle in Ihrem Snowflake-Konto (z. B. mit Snowsight oder Snowflake CLI) aus. Sie benötigen eine Rolle mit Berechtigungen zum Erstellen von Benutzenden, Rollen und Datenbanken (z. B. ACCOUNTADMIN oder USERADMIN für die ersten Zeilen und dann zur neuen Rolle wechseln). Ersetzen Sie Platzhalter wie MY_USER, MY_ROLE, MY_DATABASE und so weiter mit den gewünschten Namen.
Bemerkung
Die Spalte data in der Beispieltabelle ist vom Typ VARIANT. Die leistungsstarke SDK erfordert, dass die Daten für diese Spalte als natives Objekt übergeben werden, wie z. B. eine Java-Karte oder ein Python-Dictionary. Das Übergeben von Raw-JSON-Zeichenfolgenergebnissen führt dazu, dass die Daten als Zeichenfolgenliteral gespeichert werden.
Schritt 2: Konfigurieren Sie ein Authentifizierungsprofil¶
Die Demo-Anwendung benötigt eine profile.json Datei, um die Verbindungseinstellungen, einschließlich der Authentifizierungsdetails, zu speichern. Das SDK verwendet die Schlüsselpaar-Authentifizierung für sichere Verbindungen.
Profilkonfigurationsdatei erstellen¶
Erstellen oder aktualisieren Sie die profile.json-Datei im Verzeichnis Ihres Demo-Projekts.
profile.json-Vorlage¶
Ersetzen Sie die Platzhalter:
MY_USER: Ihr in Schritt 1: Konfigurieren Sie Snowflake-Objekte konfigurierter Snowflake-Benutzername.your_account_identifier: Ihr Snowflake-Kontobezeichner (z. B.xy12345).rsa_key.p8: Die private Schlüsseldatei, die Sie in Schritt 1: Konfigurieren Sie Snowflake-Objekte generiert haben.MY_ROLE: Die spezielle Rolle (MY_ROLE), die Sie erstellt und dem Benutzer in Schritt 1: Konfigurieren Sie Snowflake-Objekte gewährt haben.
Schritt 3: Richten Sie das Demoprojekt ein¶
Herunterladen: Beispiel für Java-Code
JAR-Abhängigkeit hinzufügen
Um die Snowpipe Streaming SDK einzubinden, fügen Sie die folgende Abhängigkeit zu Ihrer Maven pom.xml hinzu. Maven lädt automatisch JAR aus dem öffentlichen Repository herunter.
Wichtig
Ersetzen Sie YOUR_SDK_VERSION durch die spezifische Version, die unter Maven Central verfügbar ist.
Herunterladen: Beispiel für Python-Code
Python-Abhängigkeit hinzufügen
Die SDK erfordert Python, Version 3.9 oder höher.
Um die Snowpipe Streaming SDK für Python zu installieren, führen Sie den folgenden Befehl aus:
Weitere Informationen zu diesem Paket finden Sie unter `PyPI<https://pypi.org/project/snowpipe-streaming/>`_.
Platzieren Sie die Profildatei¶
Stellen Sie sicher, dass sich die profile.json-Datei, die Sie in Schritt 2: Konfigurieren Sie ein Authentifizierungsprofil konfiguriert haben, im Stammverzeichnis Ihres Projekts befindet.
Schritt 4: Verwenden Sie das bereitgestellte Codebeispiel, und führen Sie die Demo-Anwendung aus¶
Navigieren Sie in Ihrem Terminal zum Stammverzeichnis des Projekts.
Erstellen und Ausführen
Erstellen Sie das Projekt:
Führen Sie die Hauptklasse aus:
Demo-Anwendung ausführen
Führen Sie die Python-Demo aus:
Schritt 5: Überprüfen Sie die Daten¶
Nachdem Sie die Demo ausgeführt haben, überprüfen Sie die eingelesenen Daten in Snowflake:
Überprüfen Sie, ob Ihre Daten als strukturiertes Objekt und nicht als Zeichenfolgenliteral aufgenommen wurden:
Wenn
data_typeOBJECTzurückgibt, dann ist die Datenaufnahme korrekt.Wenn
data_typeVARCHARzurückgibt, dann übergibt Ihre Anwendung ein Zeichenfolgenliteral, das nicht geparst wird.