Verbindung zu Snowflake über Snowflake-Python-API herstellen¶
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.
Verbindungseigenschaften festlegen¶
Für das Definieren einer Verbindung zu Snowflake gibt es folgende Verfahren:
Verbindung mit Python-Dictionary herstellen¶
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"],
"role": "test_role",
"database": "test_database",
"warehouse": "test_warehouse",
"schema": "test_schema",
}
Verbindung mit Konfigurationsdatei herstellen¶
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 = "******"
role = "test_role"
warehouse = "test_warehouse"
database = "test_database"
schema = "test_schema"
In diesem Beispiel definieren Sie eine Snowflake-Verbindung namens 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 Root
-Objekt erstellen¶
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 können Sie folgende Objekte verwenden:
Verbindung mit Snowpark-Session
herstellen¶
Wenn Sie die Snowpark-API für Python verwenden, können Sie eine Verbindung zu Snowflake mit dessen snowflake.snowpark.Session
-Objekt herstellen.
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)
Weitere Informationen zum Erstellen eines Session
-Objekts finden Sie unter Erstellen einer Sitzung für Snowpark Python.
Verbindung mit Connection
-Objekt des Python-Konnektors herstellen¶
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.
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)
Weitere Informationen zur API des Snowflake-Konnektors für Python finden Sie unter Python-Konnektor-API.
Root
-Objekt verwenden¶
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()