Connexion à Snowflake avec l’API Python Snowflake¶
Avant de pouvoir effectuer des actions avec l’API Python Snowflake, vous devez définir une connexion à Snowflake. Avec la connexion, vous pouvez créer un objet Root
pour accéder aux ressources modélisées par l’API.
Note
Les méthodes de création d’une connexion à Snowflake peuvent changer à mesure que le mécanisme de définition de connexion devient plus facile et plus sûr.
Spécification des propriétés de connexion¶
Vous pouvez définir une connexion à Snowflake via l’une des méthodes suivantes :
Connexion via un dictionnaire Python¶
Vous pouvez spécifier les valeurs nécessaires pour vous connecter à Snowflake via un dictionnaire Python. Lorsque vous vous connectez, vous transmettez ce dictionnaire comme argument à la fonction ou à la méthode que vous utilisez pour vous connecter.
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",
}
Connexion via un fichier de configuration¶
Vous pouvez spécifier des définitions de connexion dans un fichier de configuration TOML. Cela supprime la nécessité de définir explicitement une connexion à Snowflake dans votre code.
Par exemple, créez un fichier de configuration situé au niveau de ~/.snowflake/connections.toml
et ajoutez des paramètres de connexion similaires aux suivants :
[myconnection]
account = "test_account"
user = "test_user"
password = "******"
warehouse = "test_warehouse"
database = "test_database"
schema = "test_schema"
Dans cet exemple, vous définissez une connexion Snowflake appelée myconnection
avec les identifiants de connexion suivants : compte test_account
, utilisateur test_user
et mot de passe, ainsi que les informations relatives à la base de données.
Les définitions de connexion prennent en charge les mêmes options de configuration que celles disponibles dans le connecteur Python Snowflake.
Connexion à et création d’un objet Root
¶
En utilisant les propriétés de connexion que vous avez spécifiées, vous pouvez créer une connexion à Snowflake. Avec la connexion, vous pouvez créer un objet Root
d’API Python Snowflake avec lequel vous pourrez commencer à utiliser l’API.
Vous pouvez vous connecter via l’une des méthodes suivantes :
Connexion via une Session
Snowpark¶
Si vous utilisez l”API Snowpark pour Python, vous pouvez créer une connexion à Snowflake via son objet snowflake.snowpark.Session
.
Pour en savoir plus sur la création d’une Session
, voir Création d’une session pour Snowpark Python.
Le code de l’exemple suivant utilise les paramètres de connexion définis dans un fichier de configuration pour créer une connexion à Snowflake. En utilisant l’objet Session
obtenu, le code crée un objet Root
à partir duquel utiliser l’API.
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
Connexion via une Connection
à un connecteur Python¶
Si vous utilisez le connecteur Snowflake pour Python, vous pouvez créer une connexion à Snowflake via sa fonction snowflake.connector.connect
. La fonction renvoie un objet Connection
.
Pour en savoir plus sur l’API du connecteur Snowflake pour Python, voir Connecteur Python API.
Le code de l’exemple suivant utilise les paramètres de connexion définis dans un fichier de configuration pour créer une connexion à Snowflake. En utilisant l’objet Connection
obtenu, le code crée un objet Root
à partir duquel utiliser l’API.
from snowflake.connector import connect
from snowflake.core import Root
connection = connect(connection_name="myconnection")
root = Root(connection)
Utilisation de l’objet Root
¶
Avec un objet Root
créé à partir de votre connexion à Snowflake, vous pouvez accéder aux objets et aux méthodes de l’API Python Snowflake. L’objet Root
est la racine de l’arbre de ressources modélisé par l’API Python Snowflake. Vous utilisez l’objet Root
pour interagir avec les objets Snowflake représentés par l’API.
Le code de l’exemple suivant utilise l’objet Root
pour accéder aux objets Snowflake afin de reprendre la tâche nommée mytask
. La tâche se trouve dans le schéma nommé myschema
, qui se trouve dans la base de données nommée mydb
. Le code utilise les méthodes databases
, schemas
et tasks
pour obtenir un objet représentant cette tâche.
from snowflake.core import Root
from snowflake.core.task import Task
tasks = root.databases["mydb"].schemas["myschema"].tasks
mytask = tasks["mytask"]
mytask.resume()