Erstellen einer Sitzung für Snowpark Java¶
Für die Verwendung von Snowpark in Ihrer Anwendung müssen Sie zuerst eine Sitzung erstellen. Um das Schreiben von Code zu erleichtern, können Sie auch die Namen von Packages und Objekten importieren.
Unter diesem Thema:
Importieren von Namen aus Paketen für Snowpark¶
Die Snowpark-API bietet eine Reihe von Klassen in verschiedenen Paketen. Der Einfachheit halber können Sie diese Pakete importieren, damit Sie keine qualifizierten Namen für Klassen verwenden müssen.
Beispiel:
Das Paket com.snowflake.snowpark_java package enthält die Hauptklassen für die Snowpark-API. Um die Namen in diesem Paket zu importieren, verwenden Sie:
import com.snowflake.snowpark_java.*;
Das Paket com.snowflake.snowpark_java.types definiert Klassen, die Sie zur Definition von Schemas für semistrukturierte Daten verwenden können.
import com.snowflake.snowpark_java.types.*;
Erstellen einer Sitzung für Snowpark¶
Der erste Schritt zur Verwendung der Bibliothek ist das Einrichten einer Sitzung mit der Snowflake-Datenbank. Zum Erstellen einer Sitzung verwenden Sie die Methoden der Klasse SessionBuilder
. Sie können auf ein SessionBuilder
-Objekt zugreifen, indem Sie die statische Methode builder
der Klasse Session
aufrufen:
import com.snowflake.snowpark_java.*;
...
// Get a SessionBuilder object.
SessionBuilder builder = Session.builder();
Um die Details zum Aufbau einer Sitzung mit einer Snowflake-Datenbank bereitzustellen (z. B. Kontobezeichner, Benutzername), erstellen Sie entweder eine Eigenschaftendatei (eine Textdatei) oder programmgesteuert ein Map
-Objekt, das die Eigenschaften enthält.
Legen Sie in der Eigenschaftendatei oder im Map
-Objekt die folgenden Eigenschaften fest:
URL
: Geben Sie hier die URL für Ihr Konto im Formathttps://account_identifier.snowflakecomputing.com
an.Siehe Kontobezeichner.
Wenn der Kontobezeichner Unterstriche (
_
) enthält, ersetzen Sie diese Unterstriche durch Bindestriche (-
).Alle zusätzlichen JDBC-Parameter (siehe Übersicht der Verbindungsparameter für den JDBC-Treiber in der JDBC-Treiberdokumentation), die für die Verbindung mit Snowflake benötigt werden (z. B.
USER
,ROLE
,WAREHOUSE
,DB
,SCHEMA
usw.).Bemerkung
Informationen zum Ändern des Protokolliergrads (z. B. von
INFO
aufDEBUG
) finden Sie unter Ändern der Protokollierungseinstellungen.(Optional)
snowpark_request_timeout_in_seconds
: Setzen Sie diesen Wert auf die maximale Anzahl von Sekunden, die die Snowpark-Bibliothek in den folgenden Fällen warten soll:Warten auf das Hochladen von Abhängigkeiten in einen Stagingbereich.
Warten auf den Abschluss einer asynchronen Aktion.
Der Standardwert für diese Eigenschaft ist 86.400 Sekunden (1 Tag).
Bemerkung
Diese Eigenschaft wurde in Snowpark 0.10.0 eingeführt.
Zur Authentifizierung können Sie die gleichen Mechanismen verwenden, die der JDBC-Treiber unterstützt. Sie können zum Beispiel Folgendes verwenden:
Kennwortbasierte Authentifizierung (durch Einstellen der Eigenschaft
PASSWORD
)
Für die Schlüsselpaar-Authentifizierung können Sie Folgendes einstellen:
Geben Sie für die Eigenschaft
PRIVATE_KEY_FILE
den Pfad zur Datei des privaten Schlüssels an.Wenn der private Schlüssel verschlüsselt ist, geben Sie zum Entschlüsseln des Schlüssels für die Eigenschaft
PRIVATE_KEY_FILE_PWD
die Passphrase an.Geben Sie für die Eigenschaft
PRIVATEKEY
den Zeichenfolgenwert des unverschlüsselten privaten Schlüssels aus der privaten Schlüsseldatei an. (Wenn der private Schlüssel verschlüsselt ist, müssen Sie den Schlüssel entschlüsseln, bevor Sie ihn als Wert der EigenschaftPRIVATEKEY
festlegen.)
So erstellen Sie die Sitzung:
Legen Sie die Eigenschaften im Objekt
SessionBuilder
fest.Wenn Sie eine Eigenschaftendatei erstellt haben, übergeben Sie den Pfad zur Eigenschaftendatei an die Methode
configFile
desSessionBuilder
-Objekts.Wenn Sie programmgesteuert eine Zuordnung (
Map
) mit den Eigenschaften erstellt haben, übergeben Sie dieMap
an dieconfigs
-Methode desSessionBuilder
-Objekts.
Beide Methoden geben ein
SessionBuilder
-Objekt zurück, das diese Eigenschaften hat.Rufen Sie die Methode
create
des ObjektsSessionBuilder
auf, um die Sitzung einzurichten.
Im Folgenden finden Sie ein Beispiel für eine Eigenschaftendatei, die die grundlegenden Parameter für die Verbindung mit einer Snowflake-Datenbank festlegt. Das Beispiel ist für die Verwendung der Schlüsselpaar-Authentifizierung eingerichtet. Geben Sie für PRIVATE_KEY_FILE
den Pfad zur Datei des privaten Schlüssels an. Wenn der private Schlüssel verschlüsselt ist, müssen Sie außerdem für PRIVATE_KEY_FILE_PWD
die Passphrase zum Entschlüsseln des privaten Schlüssels festlegen:
# profile.properties file (a text file)
URL = https://<account_identifier>.snowflakecomputing.com
USER = <username>
PRIVATE_KEY_FILE = </path/to/private_key_file.p8>
PRIVATE_KEY_FILE_PWD = <if the private key is encrypted, set this to the passphrase for decrypting the key>
ROLE = <role_name>
WAREHOUSE = <warehouse_name>
DB = <database_name>
SCHEMA = <schema_name>
Alternativ können Sie für die Eigenschaft PRIVATEKEY
den Wert des unverschlüsselten privaten Schlüssels aus der privaten Schlüsseldatei angeben.
# profile.properties file (a text file)
URL = https://<account_identifier>.snowflakecomputing.com
USER = <username>
PRIVATEKEY = <unencrypted_private_key_from_the_private_key_file>
ROLE = <role_name>
WAREHOUSE = <warehouse_name>
DB = <database_name>
SCHEMA = <schema_name>
Im folgenden Beispiel wird diese Eigenschaftendatei zum Erstellen einer neuen Sitzung verwendet:
// Create a new session, using the connection properties
// specified in a file.
Session session = Session.builder().configFile("/path/to/properties/file").create();
Im folgenden Beispiel wird ein Map-Objekt zum Einstellen der Eigenschaften verwendet:
import com.snowflake.snowpark_java.*;
import java.util.HashMap;
import java.util.Map;
...
// Create a new session, using the connection properties
// specified in a Map.
// Replace the <placeholders> below.
Map<String, String> properties = new HashMap<>();
properties.put("URL", "https://<account_identifier>.snowflakecomputing.com:443");
properties.put("USER", "<user name>");
properties.put("PRIVATE_KEY_FILE", "</path/to/private_key_file.p8>");
properties.put("PRIVATE_KEY_FILE_PWD", "<if the private key is encrypted, set this to the passphrase for decrypting the key>");
properties.put("ROLE", "<role name>");
properties.put("WAREHOUSE", "<warehouse name>");
properties.put("DB", "<database name>");
properties.put("SCHEMA", "<schema name>");
Session session = Session.builder().configs(properties).create();
Schließen einer Sitzung¶
Wenn Sie eine Sitzung nicht mehr für die Ausführung von Abfragen benötigen und alle aktiven Abfragen abbrechen möchten, rufen Sie die Methode close
des Objekts Session
auf. Beispiel:
// Close the session, cancelling any queries that are currently running, and
// preventing the use of this Session object for performing any subsequent queries.
session.close();