Verwalten von Snowflake-Stagingbereichen¶
Mit den Befehlen snow stage können Sie zusätzliche Stagingbereichs-spezifische Aufgaben durchführen:
Benannten Stagingbereich erstellen, falls dieser noch nicht existiert.
Alle Dateien aus dem Quellverzeichnis in das Zielverzeichnis kopieren.
Benannten Stagingbereich erstellen¶
Der Befehl snow stage create erstellt einen benannten Stagingbereich, wenn er noch nicht existiert.
Um beispielsweise einen Stagingbereich mit dem Namen new_stage zu erstellen, geben Sie den folgenden Befehl ein:
Das folgende Beispiel zeigt, was passiert, wenn Sie versuchen, einen Stagingbereich namens packages zu erstellen, der bereits existiert.
Wenn Sie die Art der Verschlüsselung angeben möchten, die für alle im Stagingbereich gespeicherten Dateien verwendet werden soll, fügen Sie die Option --encryption hinzu, um anzugeben, ob Sie eine vollständige Verschlüsselung (SNOWFLAKE_FULL) oder nur eine serverseitige Verschlüsselung (SNOWFLAKE_SSE) wünschen.
Dateien in und aus einem Stagingbereich kopieren¶
Der Befehl snow stage copy kopiert eine Datei vom lokalen Rechner in einen Stagingbereich oder von einem Stagingbereich auf einen lokalen Rechner sowie zwischen benannten Stagingbereichen.
Beachten Sie die folgenden Richtlinien:
Der Stagingbereichspfad muss mit
@beginnen, wie in den folgenden Beispielen gezeigt.Wenn Sie eine einzelne Datei kopieren,
<destination_path>müssen Sie statt einer Datei ein Verzeichnis angeben. Wenn das angegebene Verzeichnis nicht existiert, wird es vom Befehl erstellt.Wenn Sie ein lokales Verzeichnis in einen Stagingbereich kopieren, darf das lokale Verzeichnis standardmäßig nur Dateien enthalten. Sie können die Option
--recursiveverwenden, um Unterverzeichnisse im lokalen Verzeichnis hochzuladen. Sie können glob-Muster mit der Option--recursiveverwenden.Wenn Sie ein Verzeichnis aus einem Stagingbereich in ein lokales Dateisystem kopieren, vereinfacht der Befehl aktuell die interne Baumstruktur. Zur Veranschaulichung nehmen wir an, dass Ihr lokales Verzeichnis Folgendes enthält:
Nach dem Kopieren des Verzeichnisses aus dem Stagingbereich enthält das Verzeichnis des lokalen Dateisystems Folgendes:
Bemerkung
Wenn Sie die Dateistruktur aus dem Quellverzeichnis beibehalten möchten, können Sie die Option
--recursiveeinfügen.
Dateien in einen Stagingbereich hochladen¶
Um Dateien vom lokalen Rechner in einen Stagingbereich zu kopieren, geben Sie einen Befehl ähnlich dem folgenden ein:
Sie können den Befehl snow stage list-files verwenden, um zu überprüfen, ob der Befehl die Dateien erfolgreich kopiert hat:
Dateien aus einem Stagingbereich kopieren¶
Um Dateien aus einem Stagingbereich in ein Verzeichnis auf dem lokalen Rechner zu kopieren, geben Sie einen Befehl ähnlich dem folgenden ein:
Sie können den Inhalt des Verzeichnisses auflisten, um zu überprüfen, ob der Befehl die Dateien korrekt kopiert hat:
Beachten Sie, dass das lokale Verzeichnis existieren muss.
Sie können von einem Benutzer-Stagingbereich (@~) kopieren:
Dateien zwischen Stagingbereichen kopieren¶
Sie können Dateien direkt zwischen zwei benannten Stagingbereichen kopieren, ohne sie vorher auf Ihren lokalen Computer herunterladen zu müssen. Dies kann nützlich sein, um Dateien über verschiedene Stagingbereiche hinweg zu organisieren oder Backups zu erstellen.
Um Dateien von einem Stagingbereich in einen anderen zu kopieren, verwenden Sie die folgende Syntax:
Das folgende Beispiel kopiert alle Dateien aus production_stage nach backup_stage:
Bemerkung
Beim Kopieren von einem Stagingbereich in einen anderen kann das Ziel kein Benutzer-Stagingbereich (@~) sein. Sie müssen benannte Stagingbereiche für die Quelle und das Ziel angeben.
Glob-Muster zur Angabe von Dateien verwenden¶
Sie können mehrere Dateien angeben, die einem regulären Ausdruck entsprechen, indem Sie ein glob-Muster für das source_path-Argument verwenden. Sie müssen das glob-Muster in einfache oder doppelte Anführungszeichen einschließen.
Das folgende Beispiel kopiert alle .txt-Dateien eines Verzeichnisses in einen Stagingbereich.
Inhalt eines Stagingbereichs auflisten¶
Der Befehl snow stage list-files listet den Inhalt des Stagingbereichs auf.
Um beispielsweise die Pakete in einem Stagingbereich aufzulisten, geben Sie den folgenden Befehl ein:
Dateien aus einem Stagingbereich ausführen¶
Bemerkung
Snowflake CLI unterstützt die Ausführung von Python-Dateien für Python-Versionen 3.12 und höher nicht.
Der Befehl snow stage execute führt SQL- oder Python-Dateien aus einem Stagingbereich aus.
Für
.sql-Dateien führt er einen EXECUTE IMMEDIATE FROM- Befehl für.sql-Dateien aus einem Stagingbereich aus.Für
.py-Dateien führt es eine in der Sitzung enthaltene Snowpark Python Prozedur aus.Snowflake CLI führt die Prozedur in Snowflake aus, um eine konsistente Umgebung für die Ausführung zu gewährleisten. Wenn Ihre Python-Skripte zusätzliche Anforderungen erfordern, sollten Sie diese in einer
requirements.txt-Datei angeben, die sich im selben Verzeichnis wie die Dateien im Stagingbereich befindet. Der Befehlsnow stage executeunterstützt nur Pakete aus dem Snowflake-Anaconda-Kanal.Standardmäßig sucht der Befehl nach der
requirements.txt-Datei in der folgenden Rangfolge:Pfad des Stagingbereichs, der im
stage_path-Parameter des Befehls angegeben ist.Übergeordnete Verzeichnisse der Hierarchie des angegebenen Pfads im Stagingbereich, bis der Stagingbereich erreicht ist.
Wenn Sie keine
requirements.txt-Datei angeben, geht der Befehl davon aus, dass keine weiteren Pakete erforderlich sind.
Wenn Sie zum Beispiel
snow stage execute @my_stage/ml/app1/scriptsausführen, sucht der Befehl die Datei wie folgt:my_stage/ml/app1/scripts/requirements.txtmy_stage/ml/app1/requirements.txtmy_stage/ml/requirements.txtmy_stage/ml/requirements.txt
Die folgenden Beispiele zeigen, wie Sie verschiedene Sätze von .sql-Dateien aus einem Stagingbereich ausführen können:
Geben Sie nur den Namen eines Stagingbereichs an, um alle
.sql-Dateien im Stagingbereich auszuführen:Geben Sie einen Benutzer-Stagingbereich (
@~) an, um diescript.sql-Dateien im Benutzer-Stagingbereich auszuführen:
Glob-Muster verwenden, um Teilmengen von Dateien auszuwählen¶
Geben Sie ein glob-ähnliches Muster an, um alle
.sql-Dateien im Verzeichnisdirauszuführen:Geben Sie ein glob-ähnliches Muster an, um nur
.sql-Dateien im Verzeichnisdirauszuführen, die mit „script“, gefolgt von einem Zeichen beginnen:Geben Sie einen direkten Dateipfad mit der Option
--silentan:
Datei aus einem Stagingbereich entfernen¶
Der Befehl snow stage remove entfernt eine Datei aus einem Stagingbereich.
Um zum Beispiel eine Datei aus einem Stagingbereich zu entfernen, geben Sie einen Befehl ähnlich dem folgenden ein: