LIST¶
Gibt eine Liste von Dateien aus einem der folgenden Snowflake-Speicherfeatures zurück:
Stagingbereich
Benannter interner
Benannter externer
Für eine angegebene Tabelle
Für die aktuelle benutzende Person
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>' ]
Wobei:
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]externalStage ::= @[<namespace>.]<ext_stage_name>[/<path>]
Für einen Git Repository-Klon¶
LIST repositoryClone [ PATTERN = '<regex_pattern>' ]
Wobei:
repositoryClone ::= @[<namespace>.]<repository_clone>/<path>
Erforderliche Parameter¶
Für einen Stagingbereich¶
internalStage | externalStageGibt 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:
namespaceist 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.pathist 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¶
repositoryCloneGibt 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/pathWenn Sie Dateien aus einem Git-Repository-Klon auflisten, ist der Wert für
patherforderlich und muss mit einem der folgenden Teile beginnen:branches/branch_nameListet Dateien aus dem angegebenen Zweig auf.
tags/tag_nameListet Dateien aus dem angegebenen Tag auf.
commits/commit_hashListet 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;
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 @~;
Für einen Git Repository-Klon¶
Weitere Beispiele finden Sie unter Liste der Repository-Dateien anzeigen.