Verwalten von Paketen und Laufzeitumgebung¶
Snowflake-Notebooks laufen innerhalb einer vorgefertigten Containerumgebung, die für eine skalierbare AI/ML-Entwicklung auf Basis von Snowflake Container Runtime optimiert ist.
Python-Versionen¶
Snowflake-Notebooks unterstützen Python 3.10 bis 3.12. Wenn Sie einen Notebook-Service erstellen, wählen Sie die Python-Version aus, die am besten zu Ihren Workload-Anforderungen passt.
Vorinstallierte Pakete¶
Snowflake Container Runtime enthält etwa 100 Pakete und Bibliotheken, die eine Vielzahl von ML-Entwicklungsaufgaben in Snowflake unterstützen. Diese Pakete werden nativ auf der von Snowflake verwalteten CPU- und GPU-Infrastruktur ausgeführt.
Um die vorinstallierten Pakete anzuzeigen, führen Sie pip freeze in einer Python-Zelle oder im Notebook-Terminal aus.
Installieren zusätzlicher Pakete (falls erforderlich)¶
Snowflake unterstützt die Installation von Paketen aus verschiedenen Quellen.
Aus externen Repositorys¶
Nach der Konfiguration von Integrationen für den externen Zugriff (EAIs) für einen sicheren Repository-Zugriff können Sie Pakete direkt aus externen Quellen wie PyPI installieren. Benutzende haben Zugriff auf ein umfassendes Ökosystem von Paketen, die über die vorinstallierte Laufzeitumgebung hinausgehen, wodurch eine sichere Konnektivität zu externen Repositorys sichergestellt wird.
Sie können pip install in einer Python-Zelle oder im Notebook-Terminal ausführen.
Weitere Informationen dazu finden Sie unter Einrichten des externen Zugriffs für Snowflake Notebooks.
Über requirements.txt¶
Sie können erforderliche Paketversionen in einer requirements.txt-Datei angeben und installieren, um eine konsistente Einrichtung der Umgebung sicherzustellen. Installieren Sie diese mit dem folgenden Befehl:
!pip install -r requirements.txt
Bemerkung
Wenn die in requirements.txt angegebene Paketversion im Konflikt mit unterstützten Versionen von vorinstallierten Paketen steht, wird die Python-Umgebung unter Umständen beschädigt. Überprüfen Sie vor der Installation die Kompatibilität.
Aus Workspace-Dateien¶
Sie können .whl- oder .py-Dateien herunterladen oder erstellen, in Ihren Arbeitsbereich hochladen und installieren oder importieren.
** Wheel-Dateien (.whl)**: Laden Sie die
.whl-Datei hoch und installieren Sie sie:!pip install file_name.whl
Wenn das Paket Abhängigkeiten enthält, die noch nicht installiert sind, laden Sie den vollständigen Abhängigkeitsstrukturbaum hoch (entweder direkt in Workspaces oder in einen Stagingbereich). Alternativ können Sie auch eine EAI hinzufügen, die den Zugriff auf ein Repository ermöglicht, in das das Paket heruntergeladen werden kann (z. B. PyPI).
Python-Dateien (.py): Module, die in Ihrem Arbeitsbereich gespeichert sind, können direkt importiert werden, um Dienstprogramme und Funktionen über Notebooks hinweg gemeinsam zu nutzen. Beispiel:
from my_utils import my_func
Von einem Snowflake-Stagingbereich¶
Stagingbereiche bieten eine sichere und geregelte Bereitstellung von Paketen, indem vorhandene Snowflake-Datenspeicher- und Governance-Kontrollen für Paketdateien genutzt werden. Verwenden Sie die Snowpark-Sitzung, um Paketdateien aus einem Snowflake-Stagingbereich in die Containerumgebung abzurufen, um sie zu importieren und zu verwenden. Beispiel:
from snowflake.snowpark.context import get_active_session
import sys
session = get_active_session()
session.file.get("@db.schema.stage_name/math_tools.py", "/tmp")
sys.path.append("/tmp")
import math_tools
math_tools.add_one(3)
Verwalten der Laufzeit¶
Anheften zur Laufzeit¶
Alle Notebook-Services sind an die bei der Erstellung ausgewählte Laufzeitumgebung gebunden, es sei denn, Sie ändern diese explizit, indem Sie den Service bearbeiten. Beispiel: Ein Notebook-Service, der auf Runtime 2.0 erstellt wurde, wird nicht automatisch aktualisiert, wenn neue Runtime-Versionen veröffentlicht werden.
Scannen von Schwachstellen zur Laufzeit¶
Snowflake überprüft die Runtime-Images täglich auf Sicherheitslücken. Hohe oder kritische gängige Schwachstellen und Gefährdungen (CVEs) werden durch neue Runtime-Versionen behoben, die innerhalb von 30 Tagen nach Erkennung veröffentlicht werden.
Bestehende Notebook-Services können weiterhin Runtimes mit erkannten CVEs nutzen. Allerdings können Runtimes mit bekannten CVEs beim Erstellen neuer Notebook-Services nicht ausgewählt werden.