GET¶
Lädt Datendateien eines der folgenden Typen von internen Stagingbereichen in ein lokales Verzeichnis oder einen Ordner auf einem Clientcomputer herunter:
Benannter interner Stagingbereich.
Interner Stagingbereich für eine angegebene Tabelle.
Interner Stagingbereich für den aktuellen Benutzer.
Sie können diesen Befehl verwenden, um Datendateien herunterzuladen, nachdem Sie mit dem Befehl COPY INTO <Speicherort> Daten aus einer Tabelle in einen Snowflake-Stagingbereich entladen haben.
- Siehe auch:
LIST, PUT, REMOVE, COPY FILES
Syntax¶
GET internalStage file://<local_directory_path>
[ PARALLEL = <integer> ]
[ PATTERN = '<regex_pattern>'' ]
Wobei:
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]
Erforderliche Parameter¶
internalStage
Gibt den Speicherort in Snowflake an, von dem aus die Dateien heruntergeladen werden sollen:
@[namespace.]int_stage_name[/path]
Die Dateien werden von dem angegebenen internen Stagingbereich heruntergeladen.
@[namespace.]%table_name[/path]
Die Dateien werden aus dem Stagingbereich der angegebenen Tabelle heruntergeladen.
@~[/path]
Die Dateien werden aus dem Stagingbereich des aktuellen Benutzers heruntergeladen.
Wobei:
namespace
ist die Datenbank und/oder das Schema, in dem sich der benannte interne Stagingbereich oder die Tabelle befindet. Die Angabe ist optional, wenn in der Sitzung aktuell eine Datenbank und ein Schema verwendet werden, andernfalls ist die Angabe obligatorisch.path
ist ein optionaler Pfad mit Unterscheidung von Groß-/Kleinschreibung für Dateien am Cloudspeicherort (d. h. Dateien haben Namen, die mit einer gemeinsamen Zeichenfolge beginnen), wodurch der Zugriff auf bestimmte Dateien eingegrenzt wird. Pfade werden von den verschiedenen Cloudspeicherdiensten alternativ als Präfixe oder Ordner bezeichnet. Wennpath
angegeben ist, aber keine Datei explizit im Pfad genannt wird, werden alle Datendateien im Pfad heruntergeladen.
Bemerkung
Wenn der Stagingbereichsname oder -pfad Leerzeichen oder Sonderzeichen enthält, muss er in einfache Anführungszeichen eingeschlossen werden (z. B.
'@"my stage"'
für einen Stagingbereich mit dem Namen"my stage"
).file://local_directory_path
Gibt den lokalen Verzeichnispfad auf dem Clientcomputer an, auf den die Dateien heruntergeladen werden:
- Linux/macOS:
Sie müssen den ersten Schrägstrich in den Pfad einbeziehen (z. B.
file:///tmp/load
).Wenn der Verzeichnispfad Sonderzeichen enthält, muss die gesamte Datei-URI in einfache Anführungszeichen gesetzt werden.
- Windows:
Sie müssen das Laufwerk und den Backslash in den Pfad einbeziehen (z. B.
file://C:tempload
).Wenn der Verzeichnispfad Sonderzeichen enthält, muss die gesamte Datei-URI in einfache Anführungszeichen gesetzt werden. Beachten Sie, dass das Trennzeichen zwischen Laufwerk und Pfad ein Schrägstrich (
/
) ist, der in URIs eingeschlossen ist (z. B.'file://C:/temp/load data'
für einen Pfad in Windows, der ein Verzeichnis namensload data
enthält).
Bemerkung
Der GET-Befehl gibt einen Fehler zurück, wenn Sie einen Dateinamen als Teil des Pfades angeben, es sei denn, Sie verwenden den JDBC-Treiber oder den ODBC-Treiber. Wenn Sie bei Verwendung eines der beiden Treiber einen Dateinamen angeben, behandelt der Treiber den Dateinamen als Teil des Verzeichnispfads und erstellt ein Unterverzeichnis mit dem angegebenen Dateinamen.
Wenn Sie zum Beispiel
file:///tmp/load/file.csv
angeben, erstellt der JDBC- oder ODBC-Treiber ein Unterverzeichnis namensfile.csv/
unter dem Pfad/tmp/load/
. Der GET-Befehl lädt dann die Stagingdateien in dieses neue Unterverzeichnis herunter.
Optionale Parameter¶
PARALLEL = integer
Gibt die Anzahl der Threads an, die für den Download der Dateien verwendet werden sollen. Die Granularitätseinheit zum Herunterladen ist eine Datei.
Die Erhöhung der Anzahl der Threads kann die Leistung beim Herunterladen großer Dateien verbessern.
Unterstützte Werte: Jeder ganzzahlige Wert von
1
(keine Parallelität) bis99
(99 Threads zum Hochladen von Dateien verwenden).Standard:
10
PATTERN = 'regex_pattern'
Gibt ein Muster für reguläre Ausdrücke zum Filtern von Dateien an, die heruntergeladen werden sollen. Der Befehl listet alle Dateien im angegebenen
path
(Pfad) auf und wendet auf jede der gefundenen Dateien das Muster für reguläre Ausdrücke an.Standard: Kein Wert (alle Dateien in dem angegebenen Stagingbereich werden heruntergeladen)
Nutzungshinweise¶
GET unterstützt nicht die folgenden Aktionen:
Herunterladen von Dateien aus externen Stagingbereichen. Verwenden Sie zum Herunterladen von Dateien aus externen Stagingbereichen die von Ihrem Clouddienst bereitgestellten Dienstprogramme.
Herunterladen von mehreren Dateien mit unterschiedlichen Verzeichnispfaden. Bei der Übertragung von Dateien auf Ihren Clientcomputer wird die Verzeichnisstruktur des Stagingbereichs nicht beibehalten.
Die folgende GET-Anweisung gibt beispielsweise einen Fehler zurück, da Sie nicht mehrere Dateien mit dem Namen
tmp.parquet
herunterladen können, die sich in verschiedenen Unterverzeichnissen des Stagingbereichs befinden.GET @my_int_stage my_target_path PATTERN = "tmp.parquet";
Der ODBC-Treiber unterstützt GET bei Snowflake-Konten, die auf den folgenden Plattformen gehostet werden:
Amazon Web Services (mit ODBC-Treiberversion 2.17.5 und höher).
Google Cloud Platform (mit ODBC-Treiberversion 2.21.5 und höher).
Microsoft Azure (mit ODBC-Treiberversion 2.20.2 und höher).
Der Befehl kann nicht von der Seite Worksheets der Snowflake-Weboberfläche ausgeführt werden. Verwenden Sie stattdessen den SnowSQL-Client, um Datendateien herunterzuladen, oder überprüfen Sie die Dokumentation für den jeweiligen Snowflake-Client, um die Unterstützung für diesen Befehl zu überprüfen.
Der Befehl benennt Dateien nicht um.
Heruntergeladene Dateien werden automatisch mit dem gleichen Schlüssel entschlüsselt, mit dem die Datei verschlüsselt wurde, wenn sie entweder (mit PUT) hochgeladen oder aus einer Tabelle entladen wurde (mit COPY INTO <Speicherort>).
Beispiele¶
Laden Sie alle Dateien aus dem Stagingbereich der mytable
-Tabelle in das lokale Verzeichnis /tmp/data
herunter (in einer Linux- oder macOS-Umgebung):
GET @%mytable file:///tmp/data/;
Laden Sie Dateien aus dem myfiles
-Pfad des Stagingbereichs des aktuellen Benutzers in das lokale Verzeichnis /tmp/data
herunter (in einer Linux- oder macOS-Umgebung):
GET @~/myfiles file:///tmp/data/;