Verbinden mit Snowflake mit dem Snowflake Python APIs¶
Bevor Sie Aktionen mit der Snowflake Python APIs 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.
Sie können die grundlegenden Einstellungen für die TOML-Konfigurationsdatei im Snowsight vornehmen. Weitere Informationen dazu finden Sie unter Konfigurieren eines Clients, eines Treibers, einer Bibliothek oder einer Anwendung eines Drittanbieters für die Verbindung mit Snowflake.
Sie können die Verbindungseinstellungen auch manuell konfigurieren. Erstellen Sie beispielsweise eine Konfigurationsdatei unter ~/.snowflake/connections.toml
, und fügen Sie Verbindungseinstellungen ähnlich der 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 dem test-account
-Konto, dem test_user
-Benutzer, den Anmeldeinformationen und den Datenbankinformationen.
Bemerkung
Unterstriche werden in der account
-Einstellung nicht unterstützt. Wenn der Kontobezeichner Unterstriche enthält, ersetzen Sie diese durch Bindestriche. Weitere Informationen finden Sie unter -Kontoname in Ihrer Organisation.
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 Snowflake Python APIs Root
-Objekt erstellen, mit dem Sie die API verwenden können.
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.
Die Snowpark Python-Bibliothek wird nicht automatisch als Abhängigkeit von snowflake.core
installiert. Um eine Verbindung zu Snowflake über das Objekt Snowpark Session
herzustellen, gehen Sie wie folgt vor:
Um das
snowflake-snowpark-python
-Paket zu installieren, führen Sie den folgenden Befehl aus:pip install 'snowflake-snowpark-python>=1.5.0,<2.0.0'
Um eine Verbindung zu Snowflake herzustellen, führen Sie einen Code ähnlich dem folgenden Beispiel aus:
from snowflake.core import Root from snowflake.snowpark import Session session = Session.builder.config("connection_name", "myconnection").create() root = Root(session)
In diesem Beispiel erstellt der Code ein
Session
-Objekt unter Verwendung einer Verbindungsdefinition namensmyconnection
, die in einer Konfigurationsdatei angegeben ist. Unter Verwendung des resultierendenSession
-Objekts erstellt der Code einRoot
-Objekt, von dem aus die API verwendet werden kann.
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.
Sie müssen die Python Connector-Bibliothek nicht separat installieren. Das snowflake-connector-python
-Paket wird automatisch als Abhängigkeit installiert, wenn Sie das übergeordnete snowflake
-Paket installieren.
Der Code im folgenden Beispiel erstellt ein Connection
-Objekt unter Verwendung einer Verbindungsdefinition namens myconnection
, die in einer Konfigurationsdatei angegeben ist. 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 APIs zugreifen. Das Root
-Objekt ist die Wurzel des Ressourcen-Strukturbaums, der durch das API-Modell 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:
tasks = root.databases["mydb"].schemas["myschema"].tasks
mytask = tasks["mytask"]
mytask.resume()