Configuration des Snowflake Notebooks¶
Avec les Snowflake Notebooks, vous pouvez écrire et exécuter du code, visualiser les résultats, capturer des notes et partager des informations avec d’autres utilisateurs de Snowflake. Cette page présente les étapes à suivre pour configurer votre compte afin d’utiliser les Snowflake Notebooks.
Si vous êtes administrateur de votre compte, consultez Instructions de configuration de l’administrateur pour Snowflake Notebooks.
Si l’accès aux Snowflake Notebooks a déjà été configuré par un administrateur pour votre compte, consultez Instructions de configuration de l’utilisateur pour Snowflake Notebooks.
Instructions de configuration de l’utilisateur pour Snowflake Notebooks¶
Avant de commencer à utiliser les Snowflake Notebooks, procédez aux étapes de configuration suivantes.
Créer une base de données et un schéma dédiés (facultatif)¶
Pour créer un notebook, vous avez besoin d’une base de données et d’un schéma pour stocker votre notebook. Vous pouvez utiliser une base de données et un schéma existants ou en créer de nouveaux pour stocker et gérer des Snowflake Notebooks.
Pour simplifier le stockage et la gestion de Snowflake Notebooks, Snowflake recommande de créer une base de données et un schéma dédiés.
Pour créer une base de données et un schéma dédiés à churn_analysis
pour stocker vos Snowflake Notebooks, exécutez les commandes SQL suivantes :
CREATE DATABASE churn_analysis;
USE DATABASE churn_analysis;
CREATE SCHEMA notebooks_sch;
Notez que la base de données et le schéma ne sont nécessaires que pour stocker vos notebooks. Vous pouvez interroger n’importe quelle base de données et n’importe quel schéma auxquels votre rôle a accès. Utilisez la commande USE DATABASE ou USE SCHEMA dans une cellule SQL pour remplacer le contexte par celui d’une base de données ou d’un schéma différent.
Le fait de disposer d’un emplacement dédié au stockage et à la gestion des notebooks permet également d’éviter que les notebooks ne soient supprimés lors de la suppression d’une base de données ou d’un schéma.
Créer des ressources de calcul¶
Pour créer un notebook, vous devez sélectionner un entrepôt de requêtes pour les requêtes pushdown. Vous pouvez sélectionner un entrepôt existant ou en créer un nouveau spécifiquement pour vos notebooks.
Pour créer un entrepôt dédié, notebooks_wh
, exécutez la commande SQL suivante :
CREATE WAREHOUSE notebooks_wh;
Si vous créez un notebook à exécuter dans un runtime de conteneur, vous devez sélectionner un pool de calcul. Les pools de calcul sont des machines virtuelles basées sur CPU ou GPUgérées par Snowflake. Pour plus de détails, voir Snowpark Container Services : utilisation des pools de calcul.
Pour créer des pools de calcul dédiés pour vos notebooks, exécutez les commandes SQL suivantes :
CREATE COMPUTE POOL CPU_XS
MIN_NODES = 1
MAX_NODES = 15
INSTANCE_FAMILY = CPU_X64_XS;
CREATE COMPUTE POOL GPU_S
MIN_NODES = 1
MAX_NODES = 5
INSTANCE_FAMILY = GPU_NV_S;
Lors de la création d’un pool de calcul, définissez le paramètre MAX_NODES sur une valeur supérieure à un, étant donné que chaque notebook nécessite un nœud complet pour être exécuté.
Exigences en matière de contrôle d’accès¶
Pour vous aider à gérer les personnes autorisées à créer des notebooks, Snowflake fournit un privilège dédié au niveau du schéma. Lorsque vous créez un notebook, le rôle propriétaire du notebook est le rôle actif dans votre session. Tout utilisateur ayant ce rôle peut ouvrir, exécuter et modifier les notebooks appartenant à ce rôle. Un utilisateur peut également hériter de l’accès aux notebooks d’un rôle. Par exemple, si un notebook appartient au rôle PUBLIC, tout utilisateur du compte peut accéder aux notebooks appartenant à ce rôle et les modifier. Vous ne pouvez pas partager le notebook avec d’autres rôles.
Étant donné que chaque notebook appartient à un rôle, vous pouvez créer un rôle dédié à la création et à l’exécution des notebooks.
Pour pouvoir créer un notebook sur le runtime d’entrepôt, vous devez utiliser un rôle disposant des privilèges suivants :
Privilège |
Objet |
---|---|
USAGE |
Base de données |
USAGE ou OWNERSHIP |
Schéma |
USAGE |
Entrepôt de requêtes |
CREATE NOTEBOOK |
Schéma |
Pour créer un notebook sur un runtime de conteneur, il faut que le rôle dispose également des privilèges suivants :
Privilège |
Objet |
---|---|
USAGE |
Entrepôt de notebooks |
USAGE |
Pool de calcul |
CREATE SERVICE |
Schéma |
Pour plus d’informations sur l’entrepôt de notebooks par rapport à l’entrepôt de requêtes, voir Recommandations de l’entrepôt pour l’utilisation de Snowflake Notebooks.
Accordez à un rôle personnalisé ces privilèges sur la base de données et le schéma que vous avez créés pour contenir vos notebooks. Par exemple, les commandes SQL suivantes montrent comment accorder les privilèges requis sur une base de données nommée notebooks_db
et un schéma nommé notebooks_sch
à un rôle nommé notebook_role
:
GRANT USAGE ON DATABASE notebooks_db TO ROLE notebook_role;
GRANT USAGE ON SCHEMA notebooks_sch TO ROLE notebook_role;
GRANT CREATE NOTEBOOK ON SCHEMA notebooks TO ROLE notebook_role;
Le rôle de notebook doit également disposer des privilèges suivants pour les notebooks dans le runtime de conteneur :
GRANT USAGE ON WAREHOUSE notebooks_wh TO ROLE notebook_role;
GRANT USAGE ON COMPUTE POOL CPU_XS TO ROLE notebook_role;
GRANT USAGE ON COMPUTE POOL GPU_S TO ROLE notebook_role;
GRANT CREATE SERVICE ON SCHEMA notebooks_sch TO ROLE notebook_role;
Configurer une intégration d’accès externe (EAI)¶
Pour les notebooks s’exécutant sur un runtime de conteneur, si vous souhaitez installer des paquets à partir de référentiels Internet tels que PyPi et Hugging Face, le rôle ACCOUNTADMIN doit configurer un accès réseau externe et accorder à votre rôle des privilèges USAGE. Avec une intégration d’accès externe (EAI), vous pouvez activer un accès sécurisé à des emplacements réseau spécifiques externes à Snowflake, puis utiliser cet accès à partir du code du gestionnaire pour les fonctions définies par l’utilisateur (UDFs) et les procédures stockées.
Pour plus de détails sur la configuration d’une EAI pour votre notebook, voir Configurer l’accès externe pour Snowflake Notebooks.
Modèle pour la configuration d’un notebook¶
Le script SQL suivant résume l’ensemble des étapes ci-dessus pour configurer vos notebooks. Fournissez vos valeurs dans les espaces réservés et exécutez le script pour configurer l’ensemble des accès et privilèges dont vous avez besoin pour exécuter des notebooks.
----------------------------------
-- Location Setup --
----------------------------------
GRANT USAGE ON DATABASE <database> TO ROLE PUBLIC;
GRANT USAGE ON SCHEMA <database.schema> TO ROLE PUBLIC;
GRANT CREATE NOTEBOOK ON SCHEMA <database.schema> TO ROLE PUBLIC;
-- For Notebooks on Containers
GRANT CREATE SERVICE ON SCHEMA <database.schema> TO ROLE PUBLIC;
----------------------------------
-- Compute Resource Setup --
----------------------------------
GRANT USAGE ON WAREHOUSE <warehouse> TO ROLE PUBLIC;
-- For Notebooks on Containers
CREATE COMPUTE POOL CPU_XS
MIN_NODES = 1
MAX_NODES = 15
INSTANCE_FAMILY = CPU_X64_XS;
CREATE COMPUTE POOL GPU_S
MIN_NODES = 1
MAX_NODES = 5
INSTANCE_FAMILY = GPU_NV_S;
GRANT USAGE ON COMPUTE POOL CPU_XS TO ROLE PUBLIC;
GRANT USAGE ON COMPUTE POOL GPU_S TO ROLE PUBLIC;
-------------------------------------
-- Advanced Setup: External Access --
-------------------------------------
-- Example EAI
CREATE OR REPLACE NETWORK RULE allow_all_rule
MODE = 'EGRESS'
TYPE = 'HOST_PORT'
VALUE_LIST = ('0.0.0.0:443','0.0.0.0:80');
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION allow_all_integration
ALLOWED_NETWORK_RULES = (allow_all_rule)
ENABLED = true;
GRANT USAGE ON INTEGRATION allow_all_integration TO ROLE PUBLIC;
Recommandations de l’entrepôt pour l’utilisation de Snowflake Notebooks¶
Lorsque vous créez un notebook, vous sélectionnez un entrepôt dans lequel seront exécutés les processus du notebook et le code éventuel. Commencez par utiliser un entrepôt X-Small pour réduire la consommation de crédit.
Entrepôt de requêtes : exécute toutes les requêtes SQL et Snowpark émises par le notebook. Cet entrepôt est utilisé à la demande et est sélectionné par le propriétaire du notebook.
Entrepôt de notebooks : exécute le noyau Python et prend en charge l’utilisation interactive du notebook. La valeur par défaut est un entrepôt géré par Snowflake dédié aux charges de travail de notebook. Snowflake recommande d’utiliser cet entrepôt pour exécuter le noyau de votre notebook. Pour plus de détails sur cet entrepôt par défaut, voir Entrepôt par défaut pour Notebooks.
Vous pouvez également sélectionner un autre entrepôt. Par exemple, il se peut que vous souhaitiez exécuter des requêtes volumineuses à l’aide de SQL ou effectuer des opérations de calcul intensif à l’aide de Snowpark Python qui nécessitent un entrepôt plus important. Dans ce cas, deux possibilités s’offrent à vous :
Spécifiez un entrepôt à utiliser pour une cellule ou un ensemble de cellules spécifique.
Ainsi, les requêtes de ces cellules utilisent l’entrepôt le plus grand, mais les processus du notebook continuent de s’exécuter sur l’entrepôt plus petit du notebook, de sorte que vous utilisez moins de calcul lorsque vous n’exécutez pas de requêtes.
Par exemple, pour spécifier un entrepôt appelé
notebooks
à utiliser pour des cellules spécifiques, vous pouvez ajouter une cellule SQL avec la commande USE WAREHOUSE ou ajouter la commande au code Python dans une cellule Python :- SQL::
USE WAREHOUSE notebooks;
- Python ::
session.sql('USE WAREHOUSE notebooks;')
Après l’exécution d’une cellule spécifiant
USE WAREHOUSE
, toutes les cellules exécutées pendant le reste de la session du notebook utilisent l’entrepôt spécifié. Si vous n’avez plus besoin d’exécuter des requêtes avec un grand entrepôt, écrivez une nouvelle cellule pour spécifier un entrepôt plus petit à utiliser.Choisissez un entrepôt plus grand pour l’ensemble du notebook.
Prudence
Le choix de cette option peut augmenter considérablement la consommation de crédit pour l’ensemble du notebook, puisque l’entrepôt le plus grand est utilisé pour l’ensemble de la session du notebook.
Pour modifier l’entrepôt du notebook :
Connectez-vous à Snowsight.
Sélectionnez Projects » Notebooks.
Sélectionnez le menu vertical indiqué par une ellipse () en haut à droite de votre notebook.
Sélectionnez Notebook settings.
Sélectionnez un nouvel entrepôt à utiliser.
Instructions de configuration de l’administrateur pour Snowflake Notebooks¶
Pour configurer votre organisation à l’aide de Snowflake Notebooks, procédez comme suit :
Tenez compte des exigences en matière de compte et de déploiement.
Acceptez les conditions d’utilisation d’Anaconda pour importer des bibliothèques.
Considérations relatives aux comptes et au déploiement pour l’utilisation de Snowflake Notebooks¶
Assurez-vous que *.snowflake.app
figure sur la liste d’autorisations de votre réseau et que sa connexion à Snowflake est possible. Lorsque ce domaine est sur la liste d’autorisations, vos applications peuvent communiquer avec les serveurs Snowflake sans aucune restriction.
De plus, pour éviter tout problème de connexion au backend Snowflake, assurez-vous que les WebSockets ne sont pas bloqués dans votre configuration réseau.
En outre, les considérations suivantes concernant les comptes s’appliquent :
Les comptes dans les régions suivantes ne sont actuellement pas pris en charge :
Google Cloud Platform (GCP)
Virtual Private Snowflake (VPS)
Les régions gouvernementales US qui prennent en charge FedRAMP
L’utilisation de AWS PrivateLink ou de Azure Private Link n’est pas prise en charge.
Le nom de votre compte doit être unique au sein de votre organisation.
Acceptez les conditions d’utilisation d’Anaconda pour importer des bibliothèques¶
Avant de commencer à utiliser les paquets fournis par Anaconda dans Snowflake, vous devez accepter les conditions des offres externes.
Note
Vous devez être l’administrateur de l’organisation (utilisez le rôle ORGADMIN) pour accepter les conditions. Vous ne devez accepter les conditions qu’une seule fois pour votre organisation Snowflake. Voir 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 une erreur apparaît lorsque vous essayez d’accepter les conditions d’utilisation, il se peut qu’il manque un prénom, un nom ou une adresse e-mail dans votre profil d’utilisateur. Si vous avez un rôle d’administrateur, reportez-vous aux Ajouter des détails sur l’utilisateur à votre profil d’utilisateur pour mettre à jour votre profil à l’aide de Snowsight. Sinon, contactez un administrateur pour mettre à jour votre compte.
Remarques relatives à la facturation pour l’exécution de Snowflake Notebooks¶
L’exécution d’un notebook Snowflake nécessite un entrepôt virtuel.
À l’instar de la facturation pour une application Streamlit, un notebook Snowflake utilise une connexion websocket pour exécuter des requêtes. L’entrepôt virtuel reste actif tant que la connexion websocket est active. Chaque notebook a sa propre session. La connexion expire lorsque vous fermez votre notebook ou lorsque 60 minutes environ se sont écoulées depuis la dernière utilisation de la connexion par le notebook, selon la première éventualité. Pour permettre au notebook de fonctionner plus longtemps, vous pouvez utiliser un autre entrepôt ou modifier le paramètre STATEMENT_TIMEOUT_IN_SECONDS. Ce paramètre est défini au niveau de l’entrepôt ou du compte et met fin à la session du notebook après une période définie.
Voir Recommandations de l’entrepôt pour l’utilisation de Snowflake Notebooks.
Commencer à utiliser les notebooks en ajoutant des données¶
Avant de commencer à utiliser les Snowflake Notebooks, ajoutez des données à Snowflake.
Vous pouvez ajouter des données à Snowflake de plusieurs façons :
Ajoutez des données d’un fichier CSV à une table à l’aide de l’interface Web. Voir Chargement de données avec l’interface Web.
Ajoutez des données à partir d’un stockage externe dans le cloud :
Pour charger des données à partir d’Amazon S3, consultez Chargement en masse à partir d’Amazon S3.
Pour charger des données à partir de Google Cloud Storage, consultez Chargement en masse à partir de Google Cloud Storage.
Pour charger des données à partir de Microsoft Azure, consultez Chargement en masse à partir de Microsoft Azure.
Ajoutez des données en masse de manière programmatique. Voir Chargement en masse à partir d’un système de fichiers local.
Vous pouvez également ajouter des données par d’autres moyens. Voir Vue d’ensemble du chargement de données pour plus de détails.