API Python Snowflake : Gestion des objets Snowflake avec Python¶
L’API Python de Snowflake est une bibliothèque unifiée qui relie de manière transparente Python aux charges de travail Snowflake. Elle est destinée à fournir des APIs complètes pour interagir avec les ressources centrales de Snowflake à travers l’ingénierie des données, Snowpark, et les charges de travail d’application sans utiliser de commandes SQL.
Vous pouvez utiliser l’API Python de Snowflake pour gérer les ressources Snowflake en les créant, en les supprimant, en les modifiant, etc. Vous pouvez utiliser Python pour effectuer des tâches que vous pourriez sinon réaliser via les commandes SQL Snowflake.
Grâce à l’API Python de Snowflake, vous pouvez gérer actuellement les objets Snowflake suivants :
Tasks, with which you can execute SQL statements, procedure calls, and logic in Snowflake Scripting
Pour plus d’informations, voir Gestion des tâches et des graphiques de tâches Snowflake avec Python.
Ressources dans Snowpark Container Services, y compris les pools de calcul, les référentiels d’images et les services
Pour plus d’informations, voir Gestion de Snowpark Container Services avec Python.
Pour un tutoriel d’introduction à l’utilisation de l’API Python Snowflake, voir Démarrage rapide : Premiers pas avec l’API Python Snowflake.
Exemple¶
Le code de l’exemple suivant exécute une tâche appelée my_task
. Le code 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
pour utiliser les types et les méthodes de l’API. En utilisant l’API, le code crée un objet Task
représentant my_task
. En utilisant un objet appelé TaskResource
task_res
, le code exécute la tâche.
from snowflake.core import Root
from snowflake.core.task import Task
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
tasks = root.databases["mydb"].schemas["myschema"].tasks
task_res = tasks['my_task']
task_res.execute()
Pour plus d’informations sur les actions liées aux tâches que vous pouvez effectuer avec l’API, voir Gestion des tâches et des graphiques de tâches Snowflake avec Python.
Limitations¶
L’API Python Snowflake n’est actuellement pas disponible dans le canal Snowflake Anaconda.
Versions prises en charge¶
Les versions de Python prises en charge sont les suivantes :
3,8
3,9
3,10
3,11
Guides du développeur¶
Guide |
Description |
---|---|
Installez le paquet API Python Snowflake. |
|
Connectez-vous à Snowflake à partir du code Python. |
|
Gestion des tâches et des graphiques de tâches Snowflake avec Python |
Utilisez l’API pour créer, exécuter et gérer des tâches et des graphiques de tâches. |
Gestion des bases de données, schémas et tables Snowflake avec Python |
Utilisez l’API pour créer et gérer des bases de données, des schémas et des tables. |
Utilisez l’API pour créer et gérer des entrepôts virtuels. |
|
Utilisez l’API pour gérer les composants Snowpark Container Services, notamment les pools de calcul, les référentiels d’images et les services. |
Références¶
Coûts de l’accès à Snowflake¶
Pour réduire les coûts—–que ce soit au niveau des crédits d’utilisation ou de l’activité réseau—–l’API Python Snowflake est conçue pour communiquer avec Snowflake uniquement lorsque vous appelez des méthodes prévues pour se synchroniser avec Snowflake.
Les objets dans l’API sont soit des références locales (ou descripteurs), soit des instantanés d’état stockés sur Snowflake. En général, lorsque vous traitez des informations extraites de Snowflake, vous le faites par l’intermédiaire d’un objet de référence local, en mémoire.
Ces références ne sont pas synchronisées avec Snowflake tant que vous n’avez pas appelé une méthode. Lorsque vous appelez une méthode, vous encourez généralement des coûts en termes de crédit d’utilisation et d’activité réseau. En revanche, lorsque vous travaillez avec des références en mémoire, par exemple pour accéder à des attributs, votre travail s’effectue localement et n’entraîne pas de tels coûts.