Kategorien:

DML-Befehle – Staging von Dateien

REMOVE

Entfernt Dateien, die in einem der folgenden internen Stagingbereiche von Snowflake bereitgestellt wurden (d. h. aus einem lokalen Dateisystem hochgeladen oder aus einer Tabelle entladen) :

  • Benannter interner Stagingbereich.

  • Stagingbereich einer bestimmten Tabelle.

  • Stagingbereich für den aktuellen Benutzer.

REMOVE kann mit RM abgekürzt werden.

Siehe auch:

LIST

Syntax

REMOVE internalStage [ PATTERN = '<regex_pattern>' ]

Wobei:

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

Erforderliche Parameter

internalStage

Gibt den Ort in Snowflake an, an dem Dateien bereitgestellt werden:

@[Namespace.]Name_des_internen_Stagingbereichs[/Pfad]

Dateien werden aus dem angegebenen benannten internen Stagingbereich entfernt.

@[Namespace.]%Tabellenname[/Pfad]

Dateien werden aus dem Stagingbereich der angegebenen Tabelle entfernt.

@~[/Pfad]

Dateien werden aus dem Stagingbereich des aktuellen Benutzers entfernt.

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.

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

Optionale Parameter

PATTERN = 'Muster_für_regAusdruck'

Gibt ein Muster für reguläre Ausdrücke zum Filtern von zu entfernenden Dateien an.

Nutzungshinweise

  • Mit diesem Befehl werden alle Verzeichnisse und Dateien entfernt, die einem angegebenen Pfad entsprechen. Die folgende Anweisung würde beispielsweise mit den folgenden Objekten des Tabellen-Stagingbereichs mytable übereinstimmen:

    • myobject.csv.gz (Datei)

    • myobject (Verzeichnis)

    • myobject_new (Verzeichnis)

    rm @%mytable/myobject;
    
  • Um alle Dateien eines bestimmten Verzeichnisses zu entfernen, fügen Sie am Ende des Pfads einen Schrägstrich (/) ein. Beispiel:

    rm @%mytable/myobject/;
    
  • Wenn eine REMOVE-Anweisung unterbrochen wird, bevor die Ausführung abgeschlossen wurde, werden alle Dateien, die bereits von der Anweisung entfernt wurden, nicht wiederhergestellt.

Beispiele

Entfernen Sie alle Dateien aus einem benannten internen Stagingbereich mit dem Namen mystage:

REMOVE @mystage;

Entfernen Sie für die Tabelle orders alle Dateien aus dem Stagingbereich:

REMOVE @%orders;

Verwenden Sie die Kurzform des Befehls, um Dateien, deren Namen dem Muster *jun* entsprechen, aus dem Stagingbereich des aktuellen Benutzers zu entfernen:

RM @~ pattern='.*jun.*';