GET

Lädt Datendateien von einem der folgenden Snowflake-Stagingbereiche in ein lokales Verzeichnis/einen lokalen Ordner auf einem Client-Computer herunter:

  • Benannter interner Stagingbereich.

  • Interner Stagingbereich für eine angegebene Tabelle.

  • Interner Stagingbereich für den aktuellen Benutzer.

Normalerweise wird dieser Befehl ausgeführt, nachdem Sie mit dem Befehl COPY INTO <Speicherort> Daten aus einer Tabelle in einen Snowflake-Stagingbereich entladen haben.

Bemerkung

  • GET unterstützt nicht das Herunterladen von Dateien aus externen Stagingbereichen. Verwenden Sie zum Herunterladen von Dateien aus externen Stagingbereichen die vom Clouddienst bereitgestellten Dienstprogramme.

  • 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).

Siehe auch:

LIST, PUT, REMOVE

Syntax

GET internalStage file://<local_directory_path>
    [ PARALLEL = <integer> ]
    [ PATTERN = '<regex_pattern>'' ]
Copy

Wobei:

internalStage ::=
    @[<namespace>.]<int_stage_name>[/<path>]
  | @[<namespace>.]%<table_name>[/<path>]
  | @~[/<path>]
Copy

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. Wenn path 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 namens load 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 namens file.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) bis 99 (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

  • Der Befehl kann nicht von der Seite Worksheets Worksheet tab 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/;
Copy

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/;
Copy