Écrire des procédures stockées avec SQL et Python¶
Vous pouvez écrire une procédure stockée dont le gestionnaire est codé en Python. En utilisant les APIs de la bibliothèque Snowpark dans votre gestionnaire, vous pouvez effectuer des requêtes, des mises à jour et d’autres travaux sur les tables Snowflake.
Avec les procédures stockées, vous pouvez construire et exécuter votre pipeline de données dans Snowflake, en utilisant un entrepôt Snowflake comme cadre de calcul. Créez votre pipeline de données en utilisant l’API Snowpark pour Python pour écrire des procédures stockées. Pour planifier l’exécution de ces procédures stockées, vous utilisez des tâches.
Pour obtenir des informations sur les modèles de machine learning et sur Python Snowpark, voir Formation de modèles de machine learning avec Snowpark Python.
Vous pouvez écrire des procédures stockées pour Python en utilisant une feuille de calcul Python, ou en utilisant un environnement de développement local.
Vous pouvez capturer des données d’enregistrement et de trace pendant l’exécution du code de votre gestionnaire. Pour plus d’informations, reportez-vous à Journalisation, traçage et métriques.
Note
Pour créer et appeler une procédure anonyme, utilisez CALL (avec procédure anonyme). La création et l’appel d’une procédure anonyme ne nécessitent pas un rôle avec des privilèges de schéma CREATE PROCEDURE.
Prérequis pour l’écriture locale de procédures stockées¶
Pour écrire des procédures stockées Python dans votre environnement de développement local, remplissez les conditions préalables suivantes :
Vous devez utiliser la version 0.4.0 ou une version plus récente de la bibliothèque Snowpark.
Activez les paquets Anaconda pour que Snowpark Python puisse charger les dépendances tierces requises. Reportez-vous à Utilisation de paquets tiers à partir d’Anaconda.
Les versions de Python prises en charge sont les suivantes :
3,9
3,10
3,11
Configurez votre environnement de développement pour utiliser la bibliothèque Snowpark. Reportez-vous à Configuration de votre environnement de développement pour Snowpark.
Utilisation de paquets tiers à partir d’Anaconda¶
Vous pouvez spécifier les paquets Anaconda à installer lorsque vous créez des procédures stockées Python. Pour voir la liste des paquets tiers d’Anaconda, consultez le canal Anaconda Snowflake. Ces paquets tiers sont construits et fournis par Anaconda. Vous pouvez utiliser le canal Anaconda de Snowflake pour des tests et du développement locaux, sans frais, conformément aux conditions supplémentaires relatives aux logiciels embarqués des conditions de service d’Anaconda.
Pour connaître ces limitations, voir Limitations des procédures stockées Python.
Prise en main¶
Avant de commencer à utiliser les paquets fournis par Anaconda dans Snowflake, vous devez accepter les conditions des offres externes.
Note
Vous devez utiliser le rôle ORGADMIN pour accepter les conditions. Vous ne devez accepter les conditions des offres externes qu’une seule fois pour votre compte Snowflake. Si vous n’avez pas accès au rôle ORGADMIN, consultez Activation du rôle ORGADMIN dans un compte.
Connectez-vous à Snowsight.
Sélectionnez Admin » Billing & Terms.
Dans la section Anaconda, sélectionnez Enable.
Dans la boîte de dialogue Anaconda Packages , cliquez sur le lien pour consulter la page des conditions des offres externes.
Si vous acceptez les conditions, sélectionnez Acknowledge & Continue.
Si vous rencontrez une erreur lorsque vous tentez d’accepter les conditions des offres externes, cela peut être dû à des informations manquantes dans votre profil d’utilisateur, telles que le prénom, le nom de famille ou l’adresse e-mail. Si vous disposez de privilèges d’administrateur, consultez Ajouter des détails sur l’utilisateur à votre profil d’utilisateur pour mettre à jour votre profil à l’aide de l”Snowsight. Sinon, contactez un administrateur pour mettre à jour votre compte.
Note
Si vous n’acceptez pas les conditions de tiers de Snowflake comme décrit ci-dessus, vous pouvez toujours utiliser les procédures stockées, mais avec ces limitations :
Vous ne pouvez pas utiliser de paquets tiers à partir d’Anaconda.
Vous pouvez toujours spécifier Snowpark Python en tant que paquet dans une procédure stockée, mais vous ne pouvez pas spécifier une version spécifique.
Vous ne pouvez pas utiliser la méthode
to_pandas
lorsque vous interagissez avec un objetDataFrame
.
Affichage et utilisation des paquets¶
Vous pouvez afficher tous les packages disponibles et leurs informations de version en interrogeant la vue PACKAGES dans Information Schema :
SELECT * FROM information_schema.packages WHERE LANGUAGE = 'python';
Pour plus d’informations, voir Utilisation de paquets tiers dans la documentation UDF de Snowflake Python.
Utilisation de votre procédure stockée¶
Après avoir créé une procédure stockée, vous pouvez l’appeler de la manière suivante :