LIST

Gibt eine Liste von Dateien aus einem der folgenden Snowflake-Speicherfeatures zurück:

LIST kann mit LS abgekürzt werden.

Siehe auch:

REMOVE, PUT, COPY INTO <Tabelle>, COPY INTO <Speicherort>, GET

Syntax

Die Syntax unterscheidet sich, je nachdem, ob Sie Dateien in einem Stagingbereich oder in einem Git- Repository-Klon auflisten.

Für einen Stagingbereich

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

Wobei:

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

Für einen Git Repository-Klon

LIST repositoryClone [ PATTERN = '<regex_pattern>' ]
Copy

Wobei:

repositoryClone ::=
  @[<namespace>.]<repository_clone>/<path>
Copy

Erforderliche Parameter

Für einen Stagingbereich

internalStage | externalStage

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

@[namespace.]int_stage_name[/path]

Die Dateien befinden sich im angegebenen, benannten internen Stagingbereich.

@[namespace.]ext_stage_name[/path]

Die Dateien befinden sich im angegebenen, benannten externen Stagingbereich.

@[namespace.]%table_name[/path]

Die Dateien befinden sich im Stagingbereich der angegebenen Tabelle.

@~[/path]

Die Dateien befinden sich im Stagingbereich des aktuellen Benutzers.

Wobei:

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

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

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.

Für einen Git Repository-Klon

repositoryClone

Gibt den Namen des Repository-Klons und den Zweig, das Tag oder das Commit an, für den/das Dateien aufgelistet werden sollen.

@[namespace.]repository_clone/path

Wenn Sie Dateien aus einem Git-Repository-Klon auflisten, ist der Wert für path erforderlich und muss mit einem der folgenden Teile beginnen:

branches/branch_name

Listet Dateien aus dem angegebenen Zweig auf.

tags/tag_name

Listet Dateien aus dem angegebenen Tag auf.

commits/commit_hash

Listet Dateien aus dem durch den Commit-Hash angegebenen Commit auf.

Bemerkung

Wenn der Name oder Pfad des Repository-Klons Leerzeichen oder Sonderzeichen enthält, muss er in einfache Anführungszeichen eingeschlossen werden (z. B. '@"my repository"' für ein Repository mit dem Namen "my repository").

Optionale Parameter

PATTERN = 'regex_pattern'

Gibt ein Muster für reguläre Ausdrücke zum Filtern von Dateien aus der Ausgabe an. 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.

Nutzungshinweise

  • Um diesen Befehl mit einem externen Stagingbereich auszuführen, der eine Speicherintegration nutzt, müssen Sie eine Rolle verwenden, die über die Berechtigung USAGE für die Speicherintegration verfügt oder diese erbt.

    Weitere Informationen dazu finden Sie unter Berechtigungen von Stagingbereichen.

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

    • PATTERN unterstützt die Java-Musterklasse Syntax.

Ausgabe

Der Befehl gibt Spalten in den folgenden Tabellen zurück. Die Spaltenwerte unterscheiden sich je nachdem, ob Sie LIST mit einem Stagingbereich oder einem Git Repository-Klon verwenden.

Für einen Stagingbereich

Spalte

Datentyp

Beschreibung

name

VARCHAR

Name der Stagingdatei

size

NUMBER

Größe der komprimierten Datei (in Byte)

md5

VARCHAR

Die Spalte MD5 speichert einen MD5-Hash des Inhalts der Staging-Datendatei.

Bei internen Stagingbereichen mit Standardverschlüsselung (SNOWFLAKE_FULL) wird die Quelldatei während des Hochladens mit einem zufälligen Schlüssel verschlüsselt, und der daraus resultierende MD5-Digest wird sich immer von der lokalen Originaldatei unterscheiden.

Amazon S3-Stagingbereiche melden den Wert über das S3 eTag-Feld, das möglicherweise kein MD5-Hash des Dateiinhalts ist.

Für Google Cloud-Stagingbereiche, die einen vom Kunden verwalteten Verschlüsselungsschlüssel verwenden (CMEK), wird md5 als NULL erwartet.

Weitere Informationen dazu finden Sie unter vom Kunden verwaltete Verschlüsselungsschlüssel.

sha1

VARCHAR

Nicht verwendet

last_modified

VARCHAR

Zeitstempel, wann die Datei im Stagingbereich zuletzt aktualisiert wurde

Für einen Git Repository-Klon

Spalte

Datentyp

Beschreibung

name

VARCHAR

Vollständiger Dateipfad mit Erweiterung

size

NUMBER

Größe der komprimierten Datei (in Byte)

md5

VARCHAR

Nicht verwendet

sha1

VARCHAR

Ein eindeutiger Bezeichner, der durch Anwendung des SHA-1-Hash-Algorithmus für den Inhalt der Datei generiert wird. Er wird von Git verwendet, um die genaue Version einer Datei im Repository zu verfolgen und zu referenzieren, und kann verwendet werden, um Änderungen am Inhalt der Datei zu erkennen.

last_modified

VARCHAR

Zeitstempel des Commits, das mit den aufgelisteten Dateien verbunden ist. Dieser Wert gibt nicht unbedingt an, wann der Dateiinhalt zuletzt geändert wurde.

Beispiele

Für einen Stagingbereich

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

LIST @%mytable;
Copy

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

LIST @mystage/path1;
Copy

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.*';
Copy

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.*';
Copy

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

LS @~;
Copy

Für einen Git Repository-Klon

Weitere Beispiele finden Sie unter Liste der Repository-Dateien anzeigen.