Snowflake Python APIs : gestion des objets Snowflake avec Python¶
Le paquet Snowflake Python APIs 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, Snowpark ML et les charges de travail d’application à l’aide d’une API Python de première classe.
Vous pouvez utiliser Snowflake Python APIs pour gérer les ressources Snowflake en les créant, en les supprimant ou en les modifiant, et bien plus encore. Vous pouvez utiliser Python pour effectuer des tâches que vous pourriez sinon réaliser via les commandes SQL Snowflake.
Le diagramme suivant montre la structure de paquet de haut niveau de Snowflake Python APIs :
Pour en savoir plus sur l’API, y compris ses concepts généraux et ses modèles de conception, voir Snowflake Python APIs : concepts généraux.
Objets de ressources Snowflake pris en charge¶
Grâce à Snowflake Python APIs, vous pouvez actuellement gérer les objets de ressources Snowflake suivants (version d’API minimale requise entre parenthèses) :
-
Comptes (0.13.0)
Comptes gérés (0.13.0)
Alertes (0.13.0)
-
Volumes extérieurs (0.13.0)
Canaux (0.13.0)
Zones de préparation (0.9.0)
Databases and database objects
Tables dynamiques (0.10.0)
Tables d’événements (0.13.0)
Vues (0.13.0)
-
Procédures stockées (0.13.0)
-
Intégrations de catalogue (0.13.0)
Intégrations de notification (0.13.0)
Politiques de réseau (0.13.0)
Notebooks (0.13.0)
Flux (0.13.0)
-
Utilisateurs (0.9.0)
Rôles (0.9.0)
Rôles de la base de données (0.13.1)
Privilèges d’accès (0.13.1)
L’écosystème Python dans Snowflake¶
L”Snowflake Python APIs, l”API Snowpark pour Python, et le Snowflake Connector pour Python sont des interfaces qui ont chacune des objectifs distincts dans Snowflake. Cette section explique leurs différences et décrit les cas d’utilisation typiques de chacune d’entre elles.
- Snowflake Python APIs
Vous pouvez utiliser cet ensemble d’APIs Python de première classe pour définir et gérer les ressources de base (telles que les tables, les entrepôts et les tâches) dans les charges de travail Snowflake. Contrairement au connecteur Python, ces APIs interagissent avec Snowflake en utilisant le langage Python natif, sans qu’il soit nécessaire d’utiliser SQL.
Le paquet Snowflake Python APIs unifie toutes les bibliothèques Python de Snowflake (y compris
connector
,core
,snowpark
, etml
) de sorte que vous pouvez simplement démarrer avec la commandepip install snowflake
.Suivant l’approche de la programmation déclarative, cette API peut être utilisée comme un outil DevOps pour gérer les modifications de vos ressources et automatiser le déploiement du code et de l’infrastructure dans Snowflake.
- Snowpark
Cet ensemble de bibliothèques et d’environnements d’exécution de code permet d’exécuter Python et d’autres langages de programmation à côté de vos données dans Snowflake.
Bibliothèques : avec API Snowpark, vous pouvez utiliser des DataFrames Snowpark dans votre code pour effectuer des requêtes et transformer des données de A à Z dans Snowflake. Les applications Snowpark traitent vos données à l’échelle directement sur le moteur Snowflake sans déplacer les données vers le système où s’exécute le code de votre application.
L’API Snowpark est disponible en Python, Java et Scala.
Environnements d’exécution du code : les environnements d’exécution Snowpark prennent en charge les images de conteneurs et le code Python, Java et Scala.
Vous pouvez exécuter du code Python personnalisé par le biais de fonctions définies par l’utilisateur Python (UDFs) ou de procédures stockées pour construire des pipelines de données, des applis et bien plus encore. Les environnements d’exécution Python ont accès à un référentiel de paquets et à un gestionnaire de paquets d’Anaconda.
Des environnements d’exécution sont également disponibles en Scala et en Java.
Vous pouvez exécuter des applications conteneurisées directement dans Snowflake en utilisant Snowpark Container Services.
- Connecteur Snowflake pour Python
Utilisez ce pilote SQL pour vous connecter à Snowflake, exécuter les instructions SQL, puis obtenir les résultats à l’aide d’un client Python.
Avec le connecteur Python, vous écrivez toutes vos interactions avec Snowflake en utilisant des chaînes d’instructions SQL.
Premiers pas avec Snowflake Python APIs¶
Pour commencer à utiliser Snowflake Python APIs, reportez-vous aux instructions des rubriques suivantes :
Pour des tutoriels sur la mise en route de Snowflake Python APIs, voir Tutoriels : premiers pas avec Snowflake Python APIs.
Versions de Python prises en charge¶
Les versions de Python prises en charge sont les suivantes :
3,9
3,10
3,11
3,12
Guides du développeur¶
Guide |
Description |
---|---|
Installez le paquet Snowflake Python APIs. |
|
Connectez-vous à Snowflake à partir du code Python. |
|
Gestion des comptes Snowflake et des comptes gérés avec Python |
Utilisez l’API pour créer et gérer des comptes et des comptes gérés. |
Utilisez l’API pour créer et gérer des alertes. |
|
Gestion des ressources de chargement et de déchargement de données avec Python |
Utilisez l’API pour créer et gérer les ressources de chargement et de déchargement de données, y compris les volumes externes, les canaux et les zones de préparation. |
Gestion des bases de données, schémas, tables et vues 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 tables dynamiques. |
|
Gestion des fonctions et des procédures stockées Snowflake avec Python |
Utilisez l’API pour créer et gérer des fonctions définies par l’utilisateur (UDFs) et des procédures stockées. |
Utilisez l’API pour créer et gérer des intégrations de catalogue et des intégrations de notifications. |
|
Utilisez l’API pour créer et gérer des politiques réseau. |
|
Utilisez l’API pour créer et gérer des Snowflake Notebooks. |
|
Gestion de Snowpark Container Services (y compris les fonctions de service) avec Python |
Utilisez l’API pour gérer les composants Snowpark Container Services, notamment les pools de calcul, les référentiels d’images, les services et les fonctions de services. |
Utilisez l’API pour créer et gérer des flux. |
|
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 utilisateurs, des rôles et des attributions Snowflake avec Python |
Utilisez l’API pour créer et gérer les utilisateurs, les rôles et les autorisations. |
Utilisez l’API pour créer et gérer des entrepôts virtuels. |
Références¶
Coûts de l’accès à Snowflake¶
Pour réduire les coûts—–que ce soit au niveau des crédits ou de l’activité réseau—–les Snowflake Python APIs sont conçues 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.