Mit Dateien in Snowflake Notebooks arbeiten

Unter diesem Thema wird beschrieben, wie Sie Dateien in Snowflake Notebooks hochladen und darauf zugreifen.

Dateien in Notebook-Umgebungen

Wenn Sie ein neues Notebook anlegen, wird die Hauptdatei des Notebooks erstellt. Sie können diese Datei auf der Registerkarte Files auf der linken Seite des Notebooks anzeigen. Die Dateien werden in einem internen Stagingbereich gespeichert, der Ihre Notebook-Umgebung darstellt, und bleiben zwischen den Sitzungen erhalten.

  • Hauptdatei des Notebooks: Standardmäßig heißt diese Datei notebook_app.ipynb. Wenn Ihr Notebook über Git erstellt oder von einer anderen .ipynb-Datei hochgeladen wurde, kann der Dateiname anders lauten.

  • environment.yml: Diese Datei wird automatisch generiert, wenn Sie ein neues Paket installieren. Sie beschreibt Ihre Notebook-Umgebung und welche Pakete installiert sind.

Um den Inhalt der Datei zu prüfen, wählen Sie den Dateinamen, um eine Vorschau des Dateiinhalts anzuzeigen.

Temporäres Dateisystem in einer Notebook-Umgebung

Ihr Notebook verfügt über ein temporäres Dateisystem, das während einer aktiven Sitzung verfügbar ist. Alle während der Sitzung erstellten Dateien werden in diesem temporären Stagingbereich gespeichert. Dateien im temporären Stagingbereich sind nach Beendigung der aktuellen Notebook-Sitzung nicht mehr verfügbar.

Der folgende Code erstellt eine Datei namens myfile.txt und schreibt einen Text hinein:

with open("myfile.txt",'w') as f:
    f.write("abc")
f.close()
Copy

Sie können auf diese Datei in derselben Sitzung zugreifen, in der sie erstellt wurde.

Verwenden Sie die Methode listdir(), um die Dateien im temporären Stagingbereich aufzulisten:

import os
os.listdir()
Copy

Trennen Sie nun die Verbindung zu Ihrer aktuellen Sitzung, und stellen Sie sie wieder her. Wenn Sie die Methode listdir() erneut verwenden, wird die Datei myfile.txt nicht mehr aufgelistet.

Dateien über Notebook-Sitzungen hinweg erhalten

Um Dateien über Notebook-Sitzungen hinweg zu erhalten, gibt es folgende Optionen:

Dateien in Snowflake-Stagingbereich speichern

Wenn Sie möchten, dass Ihre Dateien zwischen den Sitzungen erhalten bleiben und auf die Dateien in verschiedenen Notebooks verweisen, speichern Sie die Dateien in einem Snowflake-Stagingbereich. Sie können Dateien von Ihrem lokalen Rechner in den Stagingbereich hochladen und mit den Dateioperationen der Snowpark-API von Ihrem Notebook aus auf sie zugreifen.

Beispiel

Dieses Beispiel zeigt, wie Sie einen Stagingbereich erstellen und dann Dateien mit Ihrem Notebook darin speichern und von dort abrufen.

Um einen Stagingbereich namens permanent_stage zu erstellen, führen Sie den folgenden Code in einer SQL-Zelle aus:

CREATE OR REPLACE STAGE permanent_stage;
Copy

Um eine Datei mit dem Namen myfile.txt zu erstellen, die einen Text enthält, führen Sie den folgenden Code in einer Python-Zelle aus:

with open("myfile.txt",'w') as f:
  f.write("abc")
f.close()
Copy

Beachten Sie, dass myfile.txt zu diesem Zeitpunkt im temporären Dateisystem des Notebooks gespeichert ist. Um diese Datei in den Stagingbereich zu verschieben, können Sie mit der Snowpark-API myfile.txt in permanent_stage hochladen:

from snowflake.snowpark.context import get_active_session
session = get_active_session()

put_result = session.file.put("myfile.txt","@PERMANENT_STAGE", auto_compress= False)
put_result[0].status
Copy

Wenn Sie die Verbindung zu Ihrer Sitzung unterbrechen und erneut herstellen, können Sie den folgenden Code in einer SQL-Zelle ausführen, um zu überprüfen, ob die Datei noch angezeigt wird:

LS @permanent_stage;
Copy

Dateien von einem lokalen Computer zu einem Notebook hinzufügen

Sie können Dateien von Ihrem lokalen Computer hochladen, um sie in Ihrem Snowflake-Notebook zu verwenden.

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Projects » Notebooks aus.

  3. Wählen Sie auf der Registerkarte Files neben dem Datenbank-Objekt-Explorer das Symbol Dashboard-Kachel hinzufügen aus, um Dateien zum Hochladen auszuwählen.

  4. Suchen Sie die Dateien, und wählen Sie sie aus, oder ziehen Sie sie per Drag & Drop in das Dialogfeld.

  5. Wählen Sie Upload aus, um Ihre Datei hochzuladen.

Hochgeladene Dateien werden im internen Stagingbereich des Notebooks gespeichert und bleiben zwischen den Sitzungen erhalten. Sie können auf hochgeladene Dateien über ihre lokalen Pfade in der Notebook-Datei verweisen. Siehe Referenzieren von Dateien in Notebooks.

Bemerkung

Für Notebooks auf Container-Laufzeit: Wenn Ihre Notebook-Sitzung aktiv ist, wenn Sie die Datei hochgeladen haben, müssen Sie Ihre Notebook-Sitzung neu starten, damit die hochgeladene Datei zugänglich ist. Snowflake empfiehlt, alle Dateien, die Sie für die Verwendung in Ihrem Notebook benötigen, vor Beginn Ihrer Sitzung hinzuzufügen.

Synchronisieren mit Dateien von Git

Wenn Ihr Notebook mit Git verbunden ist, werden alle Dateien, die sich in demselben Git-Ordner wie Ihr Notebook befinden, auf der Registerkarte Files angezeigt.

Weitere Informationen zur Arbeit mit Dateien in Git finden Sie unter Snowflake Notebooks mit Git-Repository synchronisieren.

Referenzieren von Dateien in Notebooks

Jede Datei in der Notebook-Umgebung hat einen Stagingbereich und einen lokalen Pfad. Sie können diese Pfade verwenden, um auf die Datei im Notebook zu verweisen.

Referenzieren eines lokalen Pfads mit Python

Im Allgemeinen verwenden Python-Bibliotheken den lokalen Pfad zu einer Datei als Referenz auf die Datei. Der folgende Code greift beispielsweise auf die Datei data.csv zu, die in dasselbe Verzeichnis hochgeladen wurde wie das Notebook, in dem dieser Code ausgeführt wird:

import pandas as pd
df = pd.read_csv("data.csv")
Copy

Referenzieren des Stagingbereichspfads mit SQL

Mit SQL verweist Snowflake auf Dateien auf Basis des Stagingbereichspfads. Der Stagingbereichspfad einer Datei in Ihrem Notebook basiert auf dem folgenden Format:

snow://notebook/<DATABASE>.<SCHEMA>.<NOTEBOOK_NAME>/versions/live/<file_name>
Copy

Um den Stagingbereichspfad zu finden, der mit den Dateien im Stagingbereich Ihres Notebooks verbunden ist, verwenden Sie das Menü Copy path:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Projects » Notebooks aus.

  3. Wählen Sie auf der Registerkarte Files neben dem Datenbank-Objekt-Explorer das Symbol Weitere Optionen neben der Datei aus, für die Sie den Pfad abrufen möchten.

  4. Wählen Sie Copy path aus. Dies kopiert den Pfad der Datei in Ihre Zwischenablage.

Dann können Sie die folgende SQL-Anweisung verwenden, um Details zu der Stagingdatei aufzulisten:

LIST 'snow://notebook/<DATABASE>.<SCHEMA>.<NOTEBOOK_NAME>/versions/live/data.csv'
Copy

Anforderungen an die Zugriffssteuerung

Sie müssen eine Rolle mit den folgenden Berechtigungen verwenden, um auf Dateien aus einem Stagingbereich in einem Notebook zuzugreifen.

Berechtigung

Objekt

USAGE

Stagingbereich, der die Dateien enthält.

Einschränkungen und Hinweise

  • Laden Sie erst die Dateien, bevor Sie Ihre Notebook-Sitzung starten. Wenn Sie Dateien laden, nachdem eine Sitzung begonnen hat, müssen Sie Ihre Sitzung neu starten, um auf die Dateien zugreifen zu können.

  • Keine Beschränkungen für Dateitypen zum Hochladen.

  • Die maximale Größe einer Datei beträgt 250 MB oder weniger.

  • Dateien, die in einen lokalen Pfad im Notebook geschrieben werden, werden auf der Registerkarte Files nicht angezeigt. Sie können die Datei jedoch weiterhin in Ihrem Notebook-Code verwenden.

    Wenn Sie beispielsweise eine Datei data.json erstellen, können Sie auf diese wie im folgenden Code gezeigt zugreifen, auch wenn sie auf der Files-UI nicht sichtbar ist:

    # Generate sample JSON file
    with open("data.json", "w") as f:
        f.write('{"fruit":"apple", "size":3.4, "weight":1.4},{"fruit":"orange", "size":5.4, "weight":3.2}')
    # Read from local JSON file (File doesn't show in UI)
    df = pd.read_json("data.json",lines=True)
    df
    
    Copy
  • Das Öffnen einer anderen .ipynb-Datei, die nicht die Hauptdatei des Notebooks ist, wird nicht unterstützt.

Zusätzliche Ressourcen