Verbinden mit Snowflake über die Snowflake-Python-API¶
Bevor Sie Aktionen mit der Snowflake-Python-API durchführen können, müssen Sie eine Verbindung zu Snowflake definieren. Mit der Verbindung können Sie ein Root
-Objekt für den Zugriff auf Ressourcen erstellen, die durch die API modelliert werden.
Bemerkung
Die Art und Weise, wie eine Verbindung zu Snowflake hergestellt wird, kann sich ändern, wenn sich der Mechanismus zur Verbindungsdefinition weiterentwickelt, um einfacher und sicherer zu werden.
Festlegen von Verbindungseigenschaften¶
Für das Definieren einer Verbindung zu Snowflake gibt es folgende Optionen:
Verbinden mithilfe eines Python-Dictionarys¶
Sie können die für die Verbindung zu Snowflake erforderlichen Werte mithilfe eines Python-Dictionarys angeben. Wenn Sie eine Verbindung herstellen, übergeben Sie dieses Dictionary als Argument an die Funktion oder Methode, die Sie für die Verbindung verwenden.
import os
CONNECTION_PARAMETERS = {
"account": os.environ["snowflake_account_demo"],
"user": os.environ["snowflake_user_demo"],
"password": os.environ["snowflake_password_demo"],
"database": "test_database",
"warehouse": "test_warehouse",
"schema": "test_schema",
}
Verbinden mithilfe einer Konfigurationsdatei¶
Sie können Verbindungsdefinitionen in einer TOML-Konfigurationsdatei angeben. Damit entfällt die Notwendigkeit, in Ihrem Code explizit eine Verbindung zu Snowflake zu definieren.
Erstellen Sie zum Beispiel eine Konfigurationsdatei unter ~/.snowflake/connections.toml
, und fügen Sie Verbindungsparameter wie die folgenden hinzu:
[myconnection]
account = "test_account"
user = "test_user"
password = "******"
warehouse = "test_warehouse"
database = "test_database"
schema = "test_schema"
In diesem Beispiel definieren Sie eine Snowflake-Verbindung mit dem Namen myconnection
mit den Anmeldeinformationen für Konto test_account
, Benutzer test_user
und Kennwort sowie den Datenbankinformationen.
Verbindungsdefinitionen unterstützen die gleichen Konfigurationsoptionen, die auch im Snowflake-Konnektor für Python verfügbar sind.
Verbinden und Erstellen eines Root
-Objekts¶
Mit den von Ihnen angegebenen Verbindungseigenschaften können Sie eine Verbindung zu Snowflake herstellen. Mit der Verbindung können Sie ein Root
-Objekt der Snowflake-Python-API erstellen, das den Startpunkt für die Nutzung der API darstellt.
Für das Herstellen der Verbindung gibt es folgende Optionen:
Verbinden mithilfe eines Snowpark-Session
-Objekts¶
Wenn Sie die Snowpark-API für Python verwenden, können Sie eine Verbindung zu Snowflake über dessen Objekt snowflake.snowpark.Session
herstellen.
Weitere Informationen zum Erstellen eines Session
-Objekts finden Sie unter Erstellen einer Sitzung für Snowpark Python.
Der Code im folgenden Beispiel verwendet die in einer Konfigurationsdatei definierten Verbindungsparameter, um eine Verbindung zu Snowflake herzustellen. Unter Verwendung des resultierenden Session
-Objekts erstellt der Code ein Root
-Objekt, von dem aus die API verwendet werden kann.
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
Verbinden mithilfe eines Connection
-Objekts des Python-Konnektors¶
Wenn Sie den Snowflake-Konnektor für Python verwenden, können Sie mit dessen snowflake.connector.connect
-Funktion eine Verbindung zu Snowflake herstellen. Die Funktion gibt ein Connection
-Objekt zurück.
Weitere Informationen zur API des Snowflake-Konnektors für Python finden Sie unter Python-Konnektor-API.
Der Code im folgenden Beispiel verwendet die in einer Konfigurationsdatei definierten Verbindungsparameter, um eine Verbindung zu Snowflake herzustellen. Unter Verwendung des resultierenden Connection
-Objekts erstellt der Code ein Root
-Objekt, von dem aus die API verwendet werden kann.
from snowflake.connector import connect
from snowflake.core import Root
connection = connect(connection_name="myconnection")
root = Root(connection)
Verwenden des Root
-Objekts¶
Mit einem Root
-Objekt, das aus Ihrer Verbindung zu Snowflake erstellt wurde, können Sie auf Objekte und Methoden der Snowflake-Python-API zugreifen. Das Root
-Objekt ist die Wurzel des Ressourcen-Strukturbaums, der durch die Snowflake-Python-API modelliert wird. Sie verwenden das Root
-Objekt, um mit Snowflake-Objekten zu interagieren, die von der API repräsentiert werden.
Der Code im folgenden Beispiel verwendet das Root
-Objekt für den Zugriff auf Snowflake-Objekte, um die Aufgabe mit dem Namen mytask
fortzusetzen. Die Aufgabe befindet sich in dem Schema mit dem Namen myschema
, das sich in der Datenbank mit dem Namen mydb
befindet. Der Code verwendet die Methoden databases
, schemas
und tasks
, um ein Objekt zu erhalten, das diese Aufgabe repräsentiert.
from snowflake.core import Root
from snowflake.core.task import Task
tasks = root.databases["mydb"].schemas["myschema"].tasks
mytask = tasks["mytask"]
mytask.resume()