Tutorial: Erste Schritte mit dem Snowpipe Streaming High-Performance-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 starten, stellen Sie sicher, dass Sie über Folgendes verfügen:
Snowflake-Konto: Zugriff auf ein Snowflake-Konto mit ausreichenden Berechtigungen, um Datenbanken, Schemas und Tabellen zu erstellen und Sicherheitseinstellungen zu verwalten.
Java-Entwicklungsumgebung: Java 11 oder höher installiert, zusammen mit Maven für die Verwaltung von Abhängigkeiten.
Snowpipe Streaming JAR: Die Datei
snowpipe-streaming.jar
, die manuell in Ihr Projekt eingebunden werden muss.Fügen Sie die neueste Version von JAR in Ihr Projekt ein, wie Schritt 3: Richten Sie das Demoprojekt ein demonstriert.
Laden Sie den Java-Beispielcode herunter.
Netzwerkzugang: Stellen Sie sicher, dass Ihr Netzwerk ausgehende Konnektivität zu Snowflake und AWS S3 zulässt. Passen Sie ggf. die Firewall-Regeln an, da SDK REST API Aufrufe an Snowflake und AWS S3 tätigt.
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 snowpipe-streaming
SDK verwenden, müssen Sie eine Zieltabelle und ein spezielles PIPE-Objekt in Ihrer Snowflake-Umgebung erstellen. Im Gegensatz zur klassischen Architektur benötigt die High-Performance-Architektur ein PIPE-Objekt für die Datenaufnahme.
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:
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
PUBK=$(cat ./rsa_key.pub | grep -v KEY- | tr -d '\012')
echo "ALTER USER MY_USER SET RSA_PUBLIC_KEY='$PUBK';"
Wichtig
Speichern Sie die generierten Dateien rsa_key.p8
(privater Schlüssel) und rsa_key.pub
(öffentlicher Schlüssel) sicher. Sie werden in den nachfolgenden Authentifizierungsschritten verwendet.
Datenbank, Schema, Tabelle, Pipe erstellen und Benutzer-Authentifizierung konfigurieren¶
Führen Sie die folgenden SQL-Befehle in Ihrem Snowflake-Konto aus (z. B. mit Snowsight oder SnowSQL), um die erforderlichen Objekte zu erstellen und die Authentifizierung für Ihren Benutzer zu konfigurieren. Ersetzen Sie Platzhalter wie MY_USER
, MY_DATABASE
, usw. durch die von Ihnen gewünschten Namen.
-- Create Database and Schema
CREATE OR REPLACE DATABASE MY_DATABASE;
CREATE OR REPLACE SCHEMA MY_SCHEMA;
-- Create Target Table
CREATE OR REPLACE TABLE MY_TABLE (
data VARIANT,
c1 NUMBER,
c2 STRING
);
-- Create PIPE Object for Streaming Ingestion
CREATE OR REPLACE PIPE MY_PIPE
AS COPY INTO MY_TABLE FROM (SELECT $1, $1:c1, $1:ts FROM TABLE(DATA_SOURCE(TYPE => 'STREAMING')));
-- Configure Authentication Policy (optional, but recommended for explicit control)
CREATE OR REPLACE AUTHENTICATION POLICY testing_auth_policy
AUTHENTICATION_METHODS = ('SAML', 'PASSWORD', 'OAUTH', 'KEYPAIR')
CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWSQL', 'DRIVERS');
-- Create or Modify User for SDK Authentication
CREATE OR REPLACE USER MY_USER; -- Or ALTER USER MY_USER if it already exists
-- Grant necessary roles to the user
GRANT ROLE ACCOUNTADMIN TO USER MY_USER; -- Grant a role with sufficient privileges
-- Apply authentication policy (if created)
ALTER USER MY_USER SET AUTHENTICATION POLICY testing_auth_policy;
-- Set default role (optional)
ALTER USER MY_USER SET DEFAULT_ROLE=ACCOUNTADMIN;
-- Set the public key for key-pair authentication
ALTER USER MY_USER SET RSA_PUBLIC_KEY='YOUR_FORMATTED_PUBLIC_KEY';
Bemerkung
Ersetzen Sie YOUR_FORMATTED_PUBLIC_KEY
durch die Ausgabe der Variable PUBK
aus dem Schritt der Schlüsselerzeugung.
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 Datei profile.json
im Stammverzeichnis des bereitgestellten Java-Demoprojekts.
Um Ihren privaten Schlüssel (rsa_key.p8
) für die Aufnahme in die Datei profile.json
zu formatieren, führen Sie den folgenden Befehl in Ihrem Terminal aus:
sed 's/$/\\n/' rsa_key.p8 | tr -d '\n'
Dieser Befehl gibt Ihren privaten Schlüssel mit umgebrochenen Zeilenumbrüchen aus, so dass er sich für eine JSON-Zeichenfolge eignet.
profile.json-Vorlage¶
{
"user": "MY_USER",
"account": "your_account_identifier",
"url": "https://your_account_identifier.snowflakecomputing.com:443",
"private_key": "YOUR_FORMATTED_PRIVATE_KEY"
}
Ersetzen Sie die Platzhalter:
MY_USER
: Ihr Snowflake-Benutzername, den Sie im vorherigen Schritt konfiguriert haben.your_account_identifier
: Ihr Snowflake-Kontobezeichner (z. B.xy12345
).YOUR_FORMATTED_PRIVATE_KEY
: Die Ausgabe des oben ausgeführten Befehlssed
. Beispielformat:-----BEGIN PRIVATE KEY-----\n-----END PRIVATE KEY-----
.
Schritt 3: Richten Sie das Demoprojekt ein¶
Fügen Sie die JAR-Abhängigkeit hinzu¶
Um das Snowpipe Streaming-SDK einzubinden, fügen Sie die folgende Abhängigkeit zu Ihrem Maven pom.xml
hinzu. Maven lädt das JAR automatisch aus dem öffentlichen Repository herunter.
<dependency>
<groupId>com.snowflake</groupId>
<artifactId>snowpipe-streaming</artifactId>
<version>YOUR_SDK_VERSION</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.18.1</version>
</dependency>
Wichtig
Ersetzen Sie YOUR_SDK_VERSION
durch die spezifische Version, die auf Maven Central verfügbar ist.
Platzieren Sie die Profildatei¶
Stellen Sie sicher, dass sich die Datei profile.json
(konfiguriert in Schritt 2) im Stammverzeichnis Ihres Projekts befindet.
Schritt 4: Verwenden Sie das mitgelieferte Java-Codebeispiel und führen Sie die Demo-Anwendung aus¶
Aufbauen und ausführen¶
Navigieren Sie in Ihrem Terminal zum Stammverzeichnis des Projekts.
Erstellen Sie das Projekt:
mvn clean install
Führen Sie die Hauptklasse aus:
mvn exec:java -Dexec.mainClass="com.snowflake.snowpipestreaming.demo.Main"
Schritt 5: Überprüfen Sie die Daten¶
Nachdem Sie die Demo ausgeführt haben, überprüfen Sie die eingelesenen Daten in Snowflake:
SELECT COUNT(*) FROM MY_DATABASE.MY_SCHEMA.MY_TABLE;
SELECT * FROM MY_DATABASE.MY_SCHEMA.MY_TABLE LIMIT 10;