Snowflake mit Notebooks erleben¶
Snowflake Notebooks ist eine Entwicklungsoberfläche, die Sie mit vielen anderen Features von Snowflake verwenden können. Unter diesem Thema wird zeigt, wie Sie andere Snowflake-Funktionen in Notebooks nutzen können.
Snowpark Python in Notebooks¶
Die Snowpark-Bibliothek bietet eine intuitive API für das Abfragen und Verarbeiten von Daten in einer Datenpipeline. Mit der Snowpark-Bibliothek können Sie Anwendungen erstellen, die Daten in Snowflake verarbeiten, ohne dass Daten in das System verschoben werden müssen, das Ihren Anwendungscode ausführt. Sie können die Datenumwandlung und -verarbeitung auch automatisieren, indem Sie gespeicherte Prozeduren schreiben und diese Prozeduren als Aufgaben in Snowflake planen.
Sie können Snowpark verwenden, um Daten in Snowflake in großem Umfang abzufragen und zu verarbeiten, indem Sie Snowpark-Code in einer Python-Zelle Ihres Notebooks schreiben.
Nutzungsbeispiel¶
Snowpark Python wird mit der Snowflake Notebooks-Umgebung vorinstalliert. Das folgende Beispiel verwendet die Snowpark-Bibliothek in einem Notebook, um eine CSV-Datei und eine Snowflake-Tabelle einzulesen und deren Inhalt als Ausgabe anzuzeigen.
Fügen Sie in Ihrem Notebook eine Python-Zelle hinzu, entweder mit dem Tastaturkürzel oder indem Sie + Python auswählen. Snowflake Notebooks unterstützen die gleiche Python-Version wie Snowpark, nämlich Python 3.9.
Richten Sie eine Snowpark-Sitzung ein. In Notebooks ist die Sitzungskontextvariable vorkonfiguriert. Sie können die Methode
get_active_session
verwenden, um die Sitzungskontextvariable zu abzurufen:from snowflake.snowpark.context import get_active_session session = get_active_session()
Verwenden Sie Snowpark, um eine CSV-Datei von einem Stagingbereich in einen Snowpark-DataFrame zu laden. In diesem Beispiel wird ein Stagingbereich namens
tastybyte_stage
verwendet.df = session.read.options({"infer_schema":True}).csv('@TASTYBYTE_STAGE/app_order.csv')
Laden Sie die bestehende Snowflake-Tabelle
app_order
in den Snowpark-DataFrame.df = session.table("APP_ORDER")
Zeigen Sie den Snowpark-DataFrame an.
df
Bemerkung
Außerhalb der Snowflake Notebooks-Umgebung müssen Sie df.show()
aufrufen, um den DataFrame auszugeben. In Snowflake Notebooks werden DataFrames im Eager-Modus ausgewertet, wenn df
ausgegeben wird. Der DataFrame wird als interaktive Streamlit-DataFrame-Anzeige ausgegeben (st.dataframe). Bei DataFrames über 10.000 Zeilen wird die maximale Anzahl von 10.000 Zeilen angezeigt.
Snowpark-Einschränkungen¶
Ein Snowflake Notebook erstellt eine Snowpark-Session, sodass Sie die meisten der in einer Snowpark Session-Klasse verfügbaren Methoden verwenden können. Da ein Notebook jedoch innerhalb von Snowflake und nicht in Ihrer lokalen Entwicklungsumgebung ausgeführt wird, können Sie die folgenden Methoden nicht verwenden:
session.add_import
session.add_packages
session.add_requirements
Einige Snowpark Python-Operationen funktionieren nicht mit SPROCs. Eine vollständige Liste der Operationen finden Sie unter Einschränkungen.
Tipp
Im Folgenden finden Sie Links zu Notebooks mit weiteren Beispielen für die Verwendung von Snowpark:
Bemerkung
Diese werden nur als Beispiele dargestellt. Wenn Sie dem Beispiel folgen, benötigen Sie möglicherweise zusätzliche Rechte für Daten, Produkte oder Dienste von Drittanbietern, die nicht im Besitz von Snowflake sind oder von Snowflake bereitgestellt werden. Snowflake übernimmt keine Garantie für die Richtigkeit dieser Beispiele.
Streamlit in Notebooks¶
Streamlit ist eine Open-Source-Python-Bibliothek, mit der sich kundenspezifische Web-Apps für maschinelles Lernen und Data Science leicht erstellen und freigeben lassen. Sie können interaktive Datenanwendungen mit Streamlit direkt in Ihrem Notebook erstellen. Sie müssen kein separates Terminal-Fenster öffnen, um Ihre Streamlit-App zu starten. Sie können Ihre App direkt in Notebook testen und entwickeln. Streamlit ist auf Notebooks vorinstalliert, sodass Sie sofort mit der Arbeit beginnen können.
Nutzungsbeispiel¶
Streamlit wird mit der Snowflake Notebooks-Umgebung vorinstalliert. Das Beispiel in diesem Abschnitt erstellt eine interaktive Daten-App mit Streamlit.
Importieren Sie die erforderlichen Bibliotheken.
import streamlit as st import pandas as pd
Erstellen Sie zunächst einige Beispieldaten für die App.
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
Richten Sie Ihren interaktiven Schieberegler aus der Streamlit-Bibliothek ein.
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 )
Zeigen Sie schließlich eine gefilterte Tabelle basierend auf dem Schiebereglerwert an.
df[df["value"]>value].sort_values("value")
Sie können über das Notebook in Echtzeit mit der App interagieren. Sehen Sie, wie sich die gefilterte Tabelle je nach dem Wert, den Sie mit dem Schieberegler einstellen, verändert.
Tipp
Das vollständige Beispiel finden Sie im Abschnitt der interaktiven Daten-App des Notebooks Visual Data Stories with Snowflake Notebooks.
Streamlit-Unterstützung in Notebooks¶
Bei Verwendung der Streamlit-Befehle st.map und st.pydeck_chart stellt Mapbox die Kartenkacheln beim Rendern von Karteninhalten bereit. Mapbox ist eine Anwendung eines Drittanbieters und unterliegt den Bedingungen für externe Angebote von Snowflake.
Einige Streamlit-Elemente werden nicht unterstützt:
-
Die Eigenschaften
page_title
undpage_icon
des Befehls st.set_page_config werden nicht unterstützt. Die folgenden experimentellen Features:
Anker-Links
Snowflake Copilot in Notebooks¶
Snowflake Copilot ist ein LLM-gestützter Assistent, der die Datenanalyse vereinfacht und zugleich eine robuste Data Governance sicherstellt, und der sich nahtlos in Ihren bestehenden Snowflake-Workflow integriert.
Sie können mit Copilot in Snowflake Notebooks über Snowsight interagieren. Über das Copilot-Bedienfeld können Sie eine Frage eingeben, auf die Snowflake Copilot eine Antwort gibt. Sie können die vorgeschlagenen SQL-Abfragen in Ihrem Notebook ausführen.
Nutzungsbeispiel¶
Führen Sie die folgende Schritten aus, um Snowflake Copilot auf Ihrem Notebook zu verwenden:
Erstellen Sie ein neues Notebook, oder öffnen Sie ein vorhandenes Notebook.
Wählen Sie in der rechten unteren rechten Ecke des Notebooks Ask Copilot aus. Das Snowflake Copilot-Panel öffnet sich auf der rechten Seite des Notebooks.
Stellen Sie sicher, dass eine Datenbank und ein Schema für das aktuelle Notebook ausgewählt sind. Falls nicht, können Sie zum Auswählen den Selektor unter dem Snowflake Copilot-Meldungsfeld verwenden.
Geben Sie Ihre Frage in das Meldungsfeld ein, und wählen Sie dann das Senden-Symbol aus oder drücken Sie Enter, um die Frage zu übermitteln. Snowflake Copilot liefert eine Antwort im Panel.
Wenn die Antwort von Snowflake Copilot Anweisungen von SQL enthält:
Wählen Sie Run, um die Abfrage auszuführen. Dies fügt die Abfrage zu Ihrem Notebook hinzu und führt sie aus.
Wählen Sie Add aus, um die Abfrage zu bearbeiten, bevor Sie sie ausführen. Damit wird die Abfrage zu Ihrem Notebook hinzugefügt.
Weitere Informationen zu Snowflake Copilot finden Sie unter Verwenden von Snowflake Copilot.
Snowpark ML in Notebooks¶
Snowpark ML ist die Python-Bibliothek, die die APIs für Snowflake ML und für die Entwicklung eigener Modelle des maschinellen Lernens in Snowflake bereitstellt. Mit Snowpark ML können Sie benutzerdefinierte Modelle unter Verwendung von APIs auf der Grundlage beliebter ML-Frameworks entwickeln, automatisch aktualisierte Features zum Trainieren dieser Modelle definieren und diese in einer Modellregistrierung speichern, damit sie leicht gefunden und wiederverwendet werden können.
Wichtig
Das snowflake-ml-python
-Paket und seine Abhängigkeiten müssen von der Paketrichtlinie Ihrer Organisation zugelassen sein.
Nutzungsbeispiel¶
Um Snowpark ML zu verwenden, installieren Sie die snowflake-ml-python
-Bibliothek für Ihr Notebook:
Wählen Sie im Notebook Packages aus.
Suchen Sie die Bibliothek snowflake-ml-python, und wählen Sie die Bibliothek aus, um sie zu installieren.
Hier ist ein Beispiel dafür, wie Sie die Snowpark ML-Bibliothek für die Vorverarbeitung Ihrer Daten verwenden können:
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
Hier ist ein Beispiel dafür, wie Sie die Snowpark ML-Bibliothek für Modelltraining und Inferenz verwenden können:
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)
Tipp
- Weitere Beispiele für die Verwendung von Snowpark ML finden Sie in den folgenden Notebooks:
ML-Registry in Notebooks¶
Snowflake Model Registry ermöglicht Kunden die sichere Verwaltung von Modellen und deren Metadaten in Snowflake, unabhängig von ihrem Ursprung. Die Modell-Registry speichert Machine-Learning-Modelle als First-Class-Objekte auf Schema-Ebene in Snowflake, sodass sie von anderen in Ihrer Organisation leicht gefunden und verwendet werden können. Unter Verwendung von Klassen der Snowpark ML-Bibliothek können Sie Registrys erstellen und darin Modelle speichern. Modelle können mehrere Versionen haben, und Sie können eine Version als Standardversion festlegen.
Nutzungsbeispiel¶
Um die Snowflake ML-Registry zu verwenden, installieren Sie die snowflake-ml-python
-Bibliothek für Ihr Notebook:
Wählen Sie oben in Ihrem Notebook Packages aus.
Suchen Sie nach dem Paket snowflake-ml-python, und wählen Sie die Bibliothek aus, um es zu installieren.
Hier ist ein Beispiel dafür, wie Sie die Snowflake ML-Registry verwenden können, um ein Modell zu protokollieren:
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()
Tipp
Dieses Video zeigt ein End-to-End-Beispiel für die Verwendung der Snowflake ML Registry.
pandas on Snowflake in Notebooks¶
Mit pandas on Snowflake können Sie Ihren pandas-Code verteilt direkt auf Ihren Daten in Snowflake ausführen. Durch eine Änderung der Importanweisung und ein paar Zeilen Code erhalten Sie die gleiche pandas-native Erfahrung, die Sie kennen und lieben, mit den Skalierbarkeits- und Sicherheitsvorteilen von Snowflake.
Mit pandas on Snowflake können Sie mit viel größeren Datensätzen arbeiten und vermeiden den Zeit- und Kostenaufwand für die Portierung Ihrer pandas-Pipelines auf andere Big Data-Frameworks oder die Bereitstellung großer und teurer Rechner. Snowpark pandas führt Workloads nativ in Snowflake durch Transpilierung nach SQL aus und kann so die Vorteile der Parallelisierung und der Data Governance und Sicherheit von Snowflake nutzen.
pandas on Snowflake wird über die API Snowpark pandas als Teil der Snowpark-Bibliothek für Python bereitgestellt, die eine skalierbare Datenverarbeitung von Python-Code innerhalb der Snowflake-Plattform ermöglicht.
Nutzungsbeispiel¶
Snowpark pandas ist in Snowpark Python Version 1.17 und höher verfügbar. Snowpark Python wird mit der Snowflake Notebooks-Umgebung vorinstalliert.
Außerdem müssen Benutzer Modin installieren, indem sie modin
unter Pakete auswählen.
Importieren Sie Snowpark Python und Modin in eine Python-Zelle:
import modin.pandas as pd import snowflake.snowpark.modin.plugin
Erstellen Sie eine Snowpark-Sitzung:
from snowflake.snowpark.context import get_active_session session = get_active_session()
Starten Sie mit der Verwendung der Snowpark Python-API:
# 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"]
Tipp
Ein ausführlicheres Beispiel für die Verwendung von pandas on Snowflake API finden Sie unter Erste Schritte mit pandas on Snowflake.