Kategorien:

DML-Befehle – Staging von Dateien

LIST

Gibt eine Liste von Dateien zurück, die in einem der folgenden Snowflake-Stagingbereiche bereitgestellt wurden (d. h. von einem lokalen Dateisystem hochgeladen oder aus einer Tabelle entladen wurden):

  • Benannter interner Stagingbereich.

  • Benannter externer Stagingbereich.

  • Stagingbereich für eine bestimmte Tabelle.

  • Stagingbereich für den aktuellen Benutzer.

LIST kann mit LS abgekürzt werden.

Siehe auch:

REMOVE

PUT, COPY INTO <Tabelle>

COPY INTO <Speicherort>, GET

Syntax

LIST { internalStage | externalStage } [ PATTERN = '<regex_pattern>' ]

Wobei:

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

Erforderliche Parameter

internalStage | externalStage

Gibt den Speicherort an, an dem die Datendateien bereitgestellt werden:

@[Namespace.]Name_des_internen_Stagingbereichs[/Pfad]

Die Dateien befinden sich im angegebenen, benannten internen Stagingbereich.

@[Namespace.]Name_des_externen_Stagingbereichs[/Pfad]

Dateien befinden sich im angegebenen, benannten externen Stagingbereich.

@[Namespace.]%Tabellenname[/Pfad]

Die Dateien befinden sich im Stagingbereich der angegebenen Tabelle.

@~[/Pfad]

Die Dateien befinden sich im Stagingbereich des aktuellen Benutzers.

Wobei:

  • Namespace ist die Datenbank und/oder das Schema, in dem sich der benannte 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.

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

Die Zeichenfolge kann in einfache Anführungszeichen eingeschlossen werden, was Sonderzeichen, einschließlich Leerzeichen, in Speicherortnamen erlaubt (z. B. '@"my stage"').

Tipp

Die Angabe eines Pfades bietet einen Bereich für den Befehl LIST, wodurch die für die Ausführung des Befehls erforderliche Zeit möglicherweise reduziert wird.

Optionale Parameter

PATTERN = 'Muster_für_regAusdruck'

Gibt ein Muster für reguläre Ausdrücke zum Filtern von Dateien aus der Ausgabe an.

Nutzungshinweise

  • Im Gegensatz zu benannten Stagingbereichen sind Stagingbereiche für Tabellen und Benutzer keine First-Class-Datenbankobjekte, sondern implizite Stagingbereiche, die der Tabelle/dem Benutzer zugeordnet sind. Als solche haben sie keine eigenen erteilbaren Berechtigungen:

    • Sie können jederzeit die Dateien in Ihrem Benutzer-Stagingbereich auflisten (d. h. es sind keine Berechtigungen erforderlich).

    • Um Dateien in einem Tabellen-Stagingbereich aufzulisten, müssen Sie eine Rolle verwenden, die die Berechtigung OWNERSHIP an der Tabelle hat.

Ausgabe

Der Befehl gibt die folgenden Spalten zurück:

Spalte

Beschreibung

name

Name der Stagingdatei

size

Größe der komprimierten Datei

md5

In der Spalte MD5 wird ein MD5-Hash des Inhalts der Staging-Datendateien gespeichert, mit dem überprüft werden kann, ob die Datei ordnungsgemäß bereitgestellt (hochgeladen) wurde. Beachten Sie, dass die Amazon S3-Stagingbereiche den Wert über das S3 eTag-Feld melden, das möglicherweise kein MD5-Hash des Dateiinhalts ist.

last_modified

Zeitstempel, wann die Datei im Stagingbereich zuletzt aktualisiert wurde

Beispiele

Listen Sie alle Dateien des Stagingbereichs für die mytable-Tabelle auf:

LIST @%mytable;

Listen Sie alle Dateien im Pfad path1 des benannten Stagingbereichs mystage auf:

LIST @mystage/path1;

Listen Sie die Dateien auf, die im Stagingbereich der mytable-Tabelle mit einem regulären Ausdruck übereinstimmen (d. h. alle Dateinamen, die die Zeichenfolge data_0 enthalten):

LIST @%mytable PATTERN='.*data_0.*';

Listen Sie die Dateien auf, die im /analysis/-Pfad des benannten Stagingbereichs my_csv_stage mit einem regulären Ausdruck übereinstimmen (d. h. alle Dateinamen, die die Zeichenfolge data_0 enthalten):

LIST @my_csv_stage/analysis/ PATTERN='.*data_0.*';

Verwenden Sie die Kurzform des Befehls, um alle Dateien aufzulisten, die sich im Stagingbereich des aktuellen Benutzers befinden:

LS @~;