Erstellen einer Sitzung für Snowpark Scala¶
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 und Objekten für Snowpark¶
Die Snowpark-API bietet eine Reihe von Klassen, Objekten und Funktionen, die in verschiedenen Paketen verfügbar sind. Der Einfachheit halber können Sie die Namen von Klassen, Objekten und Funktionen aus Paketen und Objekten importieren, um die Verwendung qualifizierter Namen zu vermeiden.
Beispiel:
Das Paket com.snowflake.snowpark package enthält die Hauptklassen für die Snowpark-API. Um die Namen in diesem Paket zu importieren, verwenden Sie:
import com.snowflake.snowpark._
Das com.snowflake.snowpark.functions object definiert Hilfsfunktionen (einschließlich systemdefinierter Funktionen). Um die Funktionsnamen aus diesem Objekt zu importieren, verwenden Sie:
import com.snowflake.snowpark.functions._
Das com.snowflake.snowpark.types package definiert Klassen und Objekte, die Sie zur Definition von Schemas für semistrukturierte Daten verwenden können.
import com.snowflake.snowpark.types._
Bemerkung
Wenn Sie zum Starten der Scala REPL das Skript run.sh
verwendet haben, wurden die Namen com.snowflake.snowpark
und com.snowflake.snowpark.functions
bereits vom Skript importiert.
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 das Objekt SessionBuilder
. Sie können auf das SessionBuilder
-Objekt über das Feld builder
im Begleitobjekt Session
zugreifen:
import com.snowflake.snowpark._
...
// Get a SessionBuilder object.
val 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
Session.builder
fest.Wenn Sie eine Eigenschaftendatei erstellt haben, übergeben Sie den Pfad zur Eigenschaftendatei an die Methode
Session.builder.configFile
.Wenn Sie programmgesteuert ein
Map
-Objekt mit den Eigenschaften erstellt haben, übergeben Sie dasMap
-Objekt an die MethodeSession.builder.configs
.
Beide Methoden geben ein
builder
-Objekt zurück, das diese Eigenschaften hat.Rufen Sie die Methode
create
des Objektsbuilder
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.
val session = Session.builder.configFile("/path/to/properties/file").create
Im folgenden Beispiel wird ein Map-Objekt zum Einstellen der Eigenschaften verwendet:
// Create a new session, using the connection properties
// specified in a Map.
val session = Session.builder.configs(Map(
"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>"
)).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();