Explorer Snowflake avec des notebooks¶
Les Snowflake Notebooks sont une surface de développement que vous pouvez utiliser avec de nombreuses autres fonctions de Snowflake. Cette rubrique montre comment exploiter d’autres fonctionnalités de Snowflake dans les notebooks.
Snowpark Python dans les notebooks¶
La bibliothèque Snowpark fournit une API intuitive pour l’interrogation et le traitement des données dans un pipeline de données. Grâce à la bibliothèque Snowpark, vous pouvez créer des applications qui traitent les données dans Snowflake sans les déplacer vers le système où s’exécute le code de votre application. Vous pouvez également automatiser la transformation et le traitement des données en écrivant des procédures stockées et en planifiant ces procédures en tant que tâches dans Snowflake.
Vous pouvez utiliser Snowpark pour effectuer des requêtes et traiter des données à l’échelle dans Snowflake en écrivant du code Snowpark dans une cellule Python de votre notebook.
Exemple d’utilisation¶
Snowpark Python est pré-installé avec l’environnement Snowflake Notebooks. L’exemple suivant utilise la bibliothèque Snowpark dans un notebook pour lire un fichier CSV et une table Snowflake et afficher son contenu en sortie.
Dans votre notebook, ajoutez une cellule Python, soit en utilisant le raccourci clavier, soit en sélectionnant + Python. Snowflake Notebooks prend en charge la même version de Python que Snowpark, à savoir Python 3.9.
Configurez une session Snowpark Dans les notebooks, la variable contextuelle de la session est préconfigurée. Vous pouvez utiliser la méthode
get_active_session
pour obtenir la variable de contexte de la session :from snowflake.snowpark.context import get_active_session session = get_active_session()
Utilisez Snowpark pour charger un fichier CSV dans un DataFrame Snowpark à partir d’une zone de préparation. Cet exemple utilise une zone de préparation appelée
tastybyte_stage
.df = session.read.options({"infer_schema":True}).csv('@TASTYBYTE_STAGE/app_order.csv')
Chargez une table Snowflake existante,
app_order
, dans le DataFrame Snowpark.df = session.table("APP_ORDER")
Affichez le DataFrame Snowpark.
df
Note
En dehors de l’environnement de Snowflake Notebooks, vous devez appeler df.show()
pour afficher le DataFrame. Dans les Snowflake Notebooks, les DataFrames sont évalués immédiatement lorsque df
est affiché. Le DataFrame est affiché sous la forme d’un affichage interactif de DataFrame Streamlit (st.dataframe). Pour les DataFrames de plus de 10 000 lignes, le nombre maximum de lignes affichées est de 10 000 lignes.
Limites de Snowpark¶
Un notebook Snowflake crée une session Snowpark, vous pouvez donc utiliser la plupart des méthodes disponibles dans une classe de session Snowflake. Cependant, étant donné qu’un notebook s’exécute à l’intérieur de Snowflake plutôt que dans votre environnement de développement local, vous ne pouvez pas utiliser les méthodes suivantes :
session.add_import
session.add_packages
session.add_requirements
Certaines opérations de Snowpark Python ne fonctionnent pas avec les SPROCs. Pour obtenir la liste complète des opérations, consultez Limitations.
Astuce
Vous trouverez ci-dessous des liens vers des notebooks contenant d’autres exemples d’utilisation de Snowpark :
Note
Ici, ce ne sont que des exemples, et si vous suivez l’exemple, vous pourriez avoir besoin de droits supplémentaires sur des données, des produits ou des services tiers qui ne sont pas détenus ou fournis par Snowflake. Snowflake ne garantit pas l’exactitude de ces exemples.
Streamlit dans les notebooks¶
Streamlit est une bibliothèque Python open-source qui facilite la création et le partage d’applications Web personnalisées pour le machine learning et la science des données. Vous pouvez créer des applications de données interactives avec Streamlit directement dans votre notebook. Vous n’avez pas besoin d’aller dans une fenêtre de terminal séparée pour servir votre application Streamlit. Vous pouvez tester et développer votre application directement dans le notebook. Streamlit est préinstallé dans les notebooks, ce qui signifie que vous pouvez commencer tout de suite.
Exemple d’utilisation¶
Streamlit est livré préinstallé avec l’environnement de Snowflake Notebooks. L’exemple de cette section crée une application de données interactive à l’aide de Streamlit.
Importez les bibliothèques nécessaires
import streamlit as st import pandas as pd
Créez d’abord quelques données d’exemple pour l’application.
species = ["setosa"] * 3 + ["versicolor"] * 3 + ["virginica"] * 3 measurements = ["sepal_length", "sepal_width", "petal_length"] * 3 values = [5.1, 3.5, 1.4, 6.2, 2.9, 4.3, 7.3, 3.0, 6.3] df = pd.DataFrame({"species": species,"measurement": measurements,"value": values}) df
Installez votre curseur interactif à partir de la bibliothèque Streamlit.
st.markdown("""# Interactive Filtering with Streamlit! :balloon: Values will automatically cascade down the notebook cells""") value = st.slider("Move the slider to change the filter value 👇", df.value.min(), df.value.max(), df.value.mean(), step = 0.3 )
Enfin, affichez une table filtrée en fonction de la valeur du curseur.
df[df["value"]>value].sort_values("value")
Vous pouvez interagir avec l’application en temps réel à partir du notebook. Voyez la table filtrée changer en fonction de la valeur que vous avez définie sur le curseur.
Astuce
Pour un exemple complet, consultez la section sur l’application de données interactive du notebook Visualisation de données avec Snowflake Notebooks.
Prise en charge de Streamlit dans les notebooks¶
Lorsque vous utilisez les commandes Streamlit st.map ou st.pydeck_chart, Mapbox fournit les vignettes de la carte lors du rendu du contenu de la carte. Mapbox est une application tierce et est soumise aux Conditions des conditions des offres externes Snowflake.
Certains éléments de Streamlit ne sont pas pris en charge :
-
Les propriétés
page_title
etpage_icon
de la commande st.set_page_config ne sont pas prises en charge. Les fonctions expérimentales suivantes :
Liens d’ancrage
Snowflake Copilot dans les notebooks¶
Snowflake Copilot est un assistant alimenté par LLM qui simplifie l’analyse des données tout en maintenant une gouvernance des données solide et qui s’intègre de manière transparente dans votre workflow Snowflake existant.
Vous pouvez interagir avec Copilot dans les Snowflake Notebooks dans Snowsight. En utilisant le panneau Copilot, vous pouvez saisir une question et Snowflake Copilot y répondra. Vous pouvez exécuter les requêtes SQL suggérées dans votre notebook.
Exemple d’utilisation¶
Suivez les étapes suivantes pour commencer à utiliser Snowflake Copilot dans votre notebook :
Créez un nouveau notebook ou ouvrez un notebook existant.
Sélectionnez Ask Copilot dans le coin inférieur droit du notebook. Le panneau Snowflake Copilot s’ouvre sur le côté droit du notebook.
Assurez-vous qu’une base de données et un schéma sont sélectionnés pour le notebook actuel. Si ce n’est pas le cas, vous pouvez les sélectionner en utilisant le sélecteur situé sous la boîte de message Snowflake Copilot.
Dans la boîte de message, tapez votre question, puis sélectionnez l’icône d’envoi ou appuyez sur Entrer pour la soumettre. Snowflake Copilot fournit une réponse dans le panneau.
Si la réponse de Snowflake Copilot comprend des instructions SQL :
sélectionnez Run pour exécuter la requête. Cette opération ajoute la requête à votre notebook et l’exécute.
Sélectionnez Add pour modifier la requête avant de l’exécuter. Cette opération permet d’ajouter la requête à votre notebook.
Pour en savoir plus sur Snowflake Copilot, consultez Utilisation de Snowflake Copilot.
Snowpark ML dans les notebooks¶
Snowpark ML est la bibliothèque Python qui fournit les APIs pour Snowflake ML et pour le développement de modèles de machine learning personnalisés dans Snowflake. Grâce à l’utilisation de Snowpark ML, vous pouvez développer des modèles personnalisés via des APIs basées sur des cadres ML populaires, définir des fonctionnalités automatiquement mises à jour pour effectuer leur apprentissage et les stocker dans un registre de modèles pour une découverte et une réutilisation faciles.
Important
Le paquet snowflake-ml-python
et ses dépendances doivent être autorisés par la politique de paquets de votre entreprise.
Exemple d’utilisation¶
Pour utiliser Snowpark ML, installez la bibliothèque snowflake-ml-python
pour votre notebook :
À partir du notebook, sélectionnez Packages.
Localisez la bibliothèque snowflake-ml-python et sélectionnez-la pour l’installer.
Voici un exemple de la façon dont vous pouvez utiliser la bibliothèque Snowpark ML pour le prétraitement de vos données :
import snowflake.ml.modeling.preprocessing as pp
# Initialize a StandardScaler object with input and output column names
scaler = pp.StandardScaler(
input_cols=feature_names_input,
output_cols=feature_names_input
)
# Fit the scaler to the dataset
scaler.fit(upsampled_data)
# Transform the dataset using the fitted scaler
scaled_features = scaler.transform(upsampled_data)
scaled_features
Voici un exemple de la façon dont vous pouvez utiliser la bibliothèque Snowpark ML pour l’entraînement et l’inférence de modèles :
from snowflake.ml.modeling.ensemble import RandomForestClassifier
# Initialize a RandomForestClassifier object with input, label, and output column names
model = RandomForestClassifier(
input_cols=feature_names_input,
label_cols=label,
output_cols=output_label,
)
# Train the RandomForestClassifier model using the training set
model.fit(training)
# Predict the target variable for the testing set using the trained model
results = model.predict(testing)
Astuce
- Pour d’autres exemples d’utilisation de Snowpark ML, consultez les notebooks suivants :
Registre ML dans les notebooks¶
Le registre des modèles de Snowpark permet aux clients de gérer en toute sécurité les modèles et leurs métadonnées dans Snowflake, quelle que soit leur origine. Le registre des modèles stocke les modèles de machine learning en tant qu’objets de niveau schéma de première classe dans Snowflake afin qu’ils puissent être facilement trouvés et utilisés par d’autres personnes au sein de votre organisation. Vous pouvez créer des registres et y stocker des modèles en utilisant des classes dans la bibliothèque Snowpark ML. Les modèles peuvent avoir plusieurs versions et vous pouvez désigner une version comme étant la version par défaut.
Exemple d’utilisation¶
Pour utiliser le registre ML de Snowflake, installez la bibliothèque snowflake-ml-python
pour votre notebook :
Depuis votre notebook, sélectionnez Packages en haut de la page.
Recherchez le paquet snowflake-ml-python et sélectionnez la bibliothèque pour l’installer.
Voici un exemple de la façon dont vous pouvez utiliser le registre ML de Snowflake pour enregistrer un modèle :
from snowflake.ml.registry import Registry
# Create a registry and log the model
native_registry = Registry(session=session, database_name=db, schema_name=schema)
# Let's first log the very first model we trained
model_ver = native_registry.log_model(
model_name=model_name,
version_name='V0',
model=regressor,
sample_input_data=X, # to provide the feature schema
)
# Add evaluation metric
model_ver.set_metric(metric_name="mean_abs_pct_err", value=mape)
# Add a description
model_ver.comment = "This is the first iteration of our Diamonds Price Prediction model. It is used for demo purposes."
# Show Models
native_registry.get_model(model_name).show_versions()
Astuce
Cette vidéo montre un exemple de bout en bout de la façon dont vous pouvez utiliser le registre ML de Snowflake.
Pandas on Snowflake dans des notebooks¶
Pandas on Snowflake vous permet d’exécuter votre code Pandas de manière distribuée directement sur vos données dans Snowflake. Il suffit de modifier l’instruction d’importation et quelques lignes de code pour obtenir la même expérience native pandas que vous connaissez et appréciez, avec les avantages d’évolutivité et de sécurité de Snowflake.
Avec pandas on Snowflake, vous pouvez travailler avec des ensembles de données beaucoup plus importants et éviter le temps et les dépenses liés au portage de vos pipelines pandas vers d’autres frameworks big data ou à l’approvisionnement de machines volumineuses et coûteuses. Elle exécute des charges de travail nativement dans Snowflake par transpilation vers SQL, ce qui lui permet de tirer parti de la parallélisation et des avantages de Snowflake en matière de gouvernance et de sécurité des données.
Pandas on Snowflake est livré via l’API Pandas Snowpark dans le cadre de la bibliothèque Python Snowpark, qui permet un traitement évolutif des données du code Python au sein de la plateforme Snowflake.
Exemple d’utilisation¶
Pandas Snowpark est disponible dans Python Snowpark version 1.17 et les versions supérieures. Snowpark Python est pré-installé avec l’environnement Snowflake Notebooks.
De plus, les utilisateurs devront installer Modin en sélectionnant modin
à partir des paquets.
Dans une cellule Python, importez Snowpark Python et Modin :
import modin.pandas as pd import snowflake.snowpark.modin.plugin
Créez une session Snowpark :
from snowflake.snowpark.context import get_active_session session = get_active_session()
Commencez à utiliser l’API Snowpark Python :
# Create a Snowpark Pandas DataFrame with sample data. df = pd.DataFrame([[1, 'Big Bear', 8],[2, 'Big Bear', 10],[3, 'Big Bear', None], [1, 'Tahoe', 3],[2, 'Tahoe', None],[3, 'Tahoe', 13], [1, 'Whistler', None],['Friday', 'Whistler', 40],[3, 'Whistler', 25]], columns=["DAY", "LOCATION", "SNOWFALL"]) # Drop rows with null values. df.dropna() # Compute the average daily snowfall across locations. df.groupby("LOCATION").mean()["SNOWFALL"]
Astuce
Pour un exemple plus détaillé de la façon d’utiliser l’API Pandas on Snowflake, voir Premiers pas avec Pandas on Snowflake.