Développez et exécutez du code dans des Snowflake Notebooks¶
Cette rubrique décrit comment écrire et exécuter du code SQL, Python et Markdown dans Snowflake Notebooks.
Principes de base des cellules des notebooks¶
Cette section présente quelques opérations de base sur les cellules. Lorsque vous créez un notebook, trois cellules d’exemple sont affichées. Vous pouvez modifier ces cellules ou en ajouter de nouvelles.
Créer une nouvelle cellule¶
Snowflake Notebooks prend en charge trois types de cellules : SQL, python et Markdown. Pour créer une nouvelle cellule, vous pouvez soit survoler une cellule existante, soit faire défiler la page jusqu’au bas du notebook, puis sélectionner l’un des boutons correspondant au type de cellule que vous souhaitez ajouter.
Vous pouvez modifier la langue de la cellule à tout moment après sa création via l’une des deux méthodes :
Sélectionnez le menu déroulant de la langue et choisissez une autre langue.
Déplacer des cellules¶
Vous pouvez déplacer une cellule soit en la faisant glisser à l’aide de votre souris, soit en utilisant le menu d’actions :
(Option 1) Passez votre souris sur la cellule existante que vous souhaitez déplacer. Sélectionnez l’icône
(glisser-déposer) sur le côté gauche de la cellule et déplacez la cellule vers son nouvel emplacement.
(Option 2) Sélectionnez le menu vertical indiqué par une ellipse
(actions). Sélectionnez ensuite l’action appropriée.
Note
Pour déplacer le curseur d’une cellule à l’autre, utilisez les flèches vers le haut and vers le bas.
Supprimer une cellule¶
Pour supprimer une cellule, effectuez les étapes suivantes dans un notebook :
Sélectionnez le menu vertical indiqué par une ellipse
(plus d’actions).
Sélectionnez Delete.
Sélectionnez à nouveau Delete pour confirmer.
Vous pouvez également utiliser le raccourci clavier pour supprimer une cellule.
Pour les considérations relatives à l’utilisation de Python et des cellules SQL, voir Considérations relatives à l’utilisation de notebooks.
Exécuter des cellules dans Snowflake Notebooks¶
Pour exécuter des cellules Python et SQL dans des Snowflake Notebooks, vous pouvez :
Exécuter une seule cellule : Choisissez cette option lorsque vous effectuez des mises à jour fréquentes du code.
Exécuter toutes les cellules d’un notebook dans l’ordre séquentiel : Choisissez cette option avant de présenter ou de partager un notebook pour vous assurer que les destinataires voient les informations les plus récentes.
Appuyez sur CMD + Maj + Retour sur un clavier Mac, ou sur CTRL + Maj + Entrée sur un clavier Windows.
Sélectionnez Run all.
Exécuter une cellule et passer à la cellule suivante : choisissez cette option pour exécuter une cellule et passer à la cellule suivante plus rapidement.
Exécuter tous les éléments ci-dessus : choisissez cette option lorsque vous exécutez une cellule qui fait référence aux résultats des cellules précédentes.
Exécuter tous les éléments ci-dessous : choisissez cette option lorsque vous exécutez une cellule dont dépendent d’autres cellules. Cette option exécute la cellule actuelle et toutes les cellules suivantes.
Lorsqu’une cellule est en cours d’exécution, les autres requêtes d’exécution sont mises en file d’attente et seront exécutées une fois que la cellule en cours d’exécution aura terminé.
Vérifier le statut de la cellule¶
Le statut de l’exécution de la cellule est indiqué par les couleurs affichées par la cellule. Cette couleur de statut est affichée à deux endroits, sur le côté gauche de la cellule et dans la carte de navigation de la cellule de droite.
Couleur du statut de la cellule :
Point bleu : La cellule a été modifiée mais n’a pas encore été exécutée.
Rouge : La cellule a été exécutée dans la session en cours et une erreur s’est produite.
Vert : La cellule s’est exécutée sans erreur dans la session en cours.
Vert clignotant : La cellule est en cours d’exécution.
Gris : La cellule a été exécutée lors d’une session précédente et les résultats affichés sont ceux de la session précédente. Les résultats des cellules de la session interactive précédente sont conservés pendant 7 jours. Session interactive signifie que l’utilisateur exécute le notebook de manière interactive dans l”Snowsight plutôt que ceux qui ont été exécutés par une planification ou la commande EXECUTE NOTEBOOK SQL.
Gris clignotant : La cellule est en attente d’exécution après que vous avez sélectionné Run All.
Note
Les cellules Markdown n’affichent aucun statut.
Une fois l’exécution d’une cellule terminée, la durée de l’exécution est affichée en haut de la cellule. Sélectionnez ce texte pour voir les détails de l’exécution, y compris les heures de début et de fin et le temps total écoulé.
Les cellules SQL contiennent des informations supplémentaires, telles que l’entrepôt utilisé pour exécuter la requête, les lignes retournées et un lien hypertexte vers la page d’ID de la requête.
Arrêter une cellule en cours d’exécution.¶
Pour arrêter l’exécution de toute cellule de code en cours, sélectionnez Stop en haut à droite de la cellule. Vous pouvez également sélectionner Stop en haut à droite de la page de Notebooks. Pendant l’exécution des cellules, Run all devient Stop.
Cette opération arrête l’exécution de la cellule en cours et de toutes les cellules suivantes dont l’exécution a été planifiée.
Formater du texte avec Markdown¶
Pour inclure le format Markdown dans votre notebook, ajoutez une cellule Markdown :
Utilisez un raccourci clavier et sélectionnez Markdown, ou sélectionnez + Markdown.
Sélectionnez l’icône de stylo Edit markdown ou double-cliquez sur la cellule et commencez à écrire Markdown.
Vous pouvez saisir du Markdown valide pour formater une cellule de texte. Au fur et à mesure que vous tapez, le texte formaté apparaît sous la syntaxe Markdown.

Pour ne voir que le texte formaté, sélectionnez l’icône de coche Done editing.

Note
Les cellules Markdown ne prennent actuellement pas en charge le rendu HTML.
Notions de base sur Markdown¶
Cette section décrit la syntaxe Markdown de base pour vous aider à démarrer.
En-têtes
Niveau de titre |
Syntaxe Markdown |
Exemple |
---|---|---|
Niveau supérieur |
# Top-level Header
|
![]() |
2e niveau |
## 2nd-level Header
|
![]() |
3e niveau |
### 3rd-level Header
|
![]() |
Formatage de texte en ligne
Format de texte |
Syntaxe Markdown |
Exemple |
---|---|---|
Italique |
*italicized text*
|
![]() |
Gras |
**bolded text**
|
![]() |
Lien |
[Link text](url)
|
![]() |
Listes
Type de liste |
Syntaxe Markdown |
Exemple |
---|---|---|
Liste triée |
1. first item
2. second item
1. Nested first
2. Nested second
|
![]() |
Liste non triée |
- first item
- second item
- Nested first
- Nested second
|
![]() |
Formatage de code
Langage |
Syntaxe Markdown |
Exemple |
---|---|---|
Python |
```python
import pandas as pd
df = pd.DataFrame([1,2,3])
```
|
![]() |
SQL |
```sql
SELECT * FROM MYTABLE
```
|
![]() |
Images intégrées
Type de fichier |
Syntaxe Markdown |
Exemple |
---|---|---|
Image |

|
![]() |
Pour voir un notebook qui illustre ces exemples Markdown, consulter la section Cellules Markdown du notebook de récits de données visuelles.
Compréhension des es sorties de cellules¶
Lorsque vous exécutez une cellule Python, le notebook affiche les types de sortie suivants de la cellule sont affichés dans les résultats :
Tous les résultats écrits sur la console, tels que les journaux, les erreurs, les avertissements et la sortie des instructions print().
Les DataFrames sont automatiquement imprimés à l’aide de l”écran de table interactif de Streamlit,
st.dataframe()
.Les types d’affichage DataFrame pris en charge sont le DataFrame Pandas, les DataFrames Snowpark et les tables Snowpark.
Pour Snowpark, les DataFrames imprimés sont évalués avec empressement sans qu’il soit nécessaire d’exécuter la commande
.show()
. Si vous préférez ne pas évaluer le DataFrame immédiatement, par exemple lorsque vous exécutez le notebook en mode non interactif, Snowflake vous recommande de supprimer les instructions d’impression de DataFrame afin d’accélérer l’environnement d’exécution global de votre code Snowpark.
Les visualisations sont présentées sous forme de sorties. Pour en savoir plus sur la visualisation de vos données, voir Visualiser des données dans les Snowflake Notebooks.
En outre, vous pouvez accéder aux résultats de votre requête SQL en Python et vice versa. Voir Cellules et variables de référence dans les Snowflake Notebooks.
Limites de sortie des cellules¶
Seules 10 000 lignes ou 8 MB de sortie DataFrame sont affichés comme résultats de cellules, la valeur la plus faible étant retenue. Cependant, l’intégralité du DataFrame est toujours disponible dans la session du notebook. Par exemple, même si l’ensemble du DataFrame n’est pas rendu, vous pouvez toujours effectuer des tâches de transformation des données.
Pour chaque cellule, seule une sortie de 20 MB est autorisée. Si la taille de la sortie de la cellule dépasse 20 MB, la sortie sera abandonnée. Envisagez de diviser le contenu en plusieurs cellules si cela se produit.
Cellules et variables de référence dans les Snowflake Notebooks¶
Vous pouvez référencer les résultats de la cellule précédente dans une cellule de notebook. Par exemple, pour référencer le résultat d’une cellule SQL ou la valeur d’une variable Python, voir les tableaux suivants :
Note
Le nom de la cellule de la référence est sensible à la casse et doit correspondre exactement au nom de la cellule référencée.
Référencement de la sortie SQL dans les cellules Python :
Type de cellule de référence |
Type de cellule actuel |
Syntaxe de référence |
Exemple |
---|---|---|---|
SQL |
Python |
|
Convertissez une table de résultats SQL en DataFrame Snowpark. Si vous avez ce qui suit dans une cellule SQL appelée SELECT 'FRIDAY' as SNOWDAY, 0.2 as CHANCE_OF_SNOW
UNION ALL
SELECT 'SATURDAY',0.5
UNION ALL
SELECT 'SUNDAY', 0.9;
Vous pouvez faire référence à la cellule pour accéder au résultat SQL : snowpark_df = cell1.to_df()
Convertissez le résultat en DataFrame Pandas : my_df = cell1.to_pandas()
|
Référence aux variables dans le code SQL :
Important
Dans le code SQL, vous ne pouvez référencer que des variables Python de type string
. Vous ne pouvez pas référence de DataFrame Snowpark, de DataFrame Pandas ni d’autre format DataFrame natif Python.
Type de cellule de référence |
Type de cellule actuel |
Syntaxe de référence |
Exemple |
---|---|---|---|
SQL |
SQL |
|
Par exemple, dans une cellule SQL nommée SELECT * FROM {{cell2}} where PRICE > 500
|
Python |
SQL |
|
Par exemple, dans une cellule Python nommée Utiliser une variable Python comme valeur c = "USA"
Vous pouvez faire référence à la valeur de la variable SELECT * FROM my_table WHERE COUNTRY = '{{c}}'
Utiliser une variable Python comme identificateur Si la variable Python représente un identificateur SQL tel qu’un nom de colonne ou de table : column_name = "COUNTRY"
Si la variable Python représente un identificateur SQL, tel qu’un nom de colonne ou de table ( SELECT * FROM my_table WHERE {{column_name}} = 'USA'
Veillez à faire la différence entre les variables utilisées comme valeurs (avec des guillemets) et comme identificateurs (sans guillemets). Remarque : Le référencement de DataFrames Python n’est pas pris en charge. |
Considérations relatives à l’utilisation de notebooks¶
Les notebooks fonctionnent en utilisant les droits de l’appelant. Pour d’autres considérations, voir Modifier le contexte de la session pour un notebook.
Vous pouvez importer des bibliothèques Python pour les utiliser dans un notebook. Pour plus de détails, voir Importer des paquets Python pour les utiliser dans les notebooks.
Lorsque vous faites référence à des objets dans les cellules SQL, vous devez utiliser des noms d’objets entièrement qualifiés, sauf si vous faites référence à des noms d’objets dans une base de données ou un schéma spécifique. Voir Modifier le contexte de la session pour un notebook.
Les brouillons de notebooks sont enregistrés toutes les trois secondes.
Vous pouvez utiliser l’intégration Git pour maintenir les versions des notebooks.
Vous pouvez configurer un paramètre de délai d’expiration pour arrêter automatiquement la session du notebook une fois le paramètre atteint. Pour plus d’informations, voir Temps d’inactivité et reconnexion.
Les résultats de la cellule du notebook ne sont visibles que par l’utilisateur qui a exécuté le notebook et sont mis en cache au fil des sessions. La réouverture d’un notebook affiche les résultats de la dernière fois que l’utilisateur a exécuté le notebook à l’aide de l”Snowsight.
BEGIN … END (Exécution de scripts Snowflake) n’est pas pris en charge dans les cellules SQL. Au lieu de cela, utilisez la méthode Session.sql().collect() dans une cellule Python pour exécuter le bloc de script. Chaînez l’appel à
sql
avec un appel àcollect
pour exécuter immédiatement la requête SQL.Le code suivant exécute un bloc Exécution de scripts Snowflake à l’aide de la méthode
session.sql().collect()
:from snowflake.snowpark.context import get_active_session session = get_active_session() code_to_run = """ BEGIN CALL TRANSACTION_ANOMALY_MODEL!DETECT_ANOMALIES( INPUT_DATA => SYSTEM$REFERENCE('TABLE', 'ANOMALY_INFERENCE'), TIMESTAMP_COLNAME =>'DATE', TARGET_COLNAME => 'TRANSACTION_AMOUNT', CONFIG_OBJECT => {'prediction_interval': 0.95} ); LET x := SQLID; CREATE TABLE ANOMALY_PREDICTIONS AS SELECT * FROM TABLE(RESULT_SCAN(:x)); END; """ data = session.sql(code_to_run).collect(block=True);