Kategorien:

DML-Befehle – Staging von Dateien

REMOVE

Entfernt Dateien entweder aus einem externen (externer Cloudspeicher) oder internen (z. B. Snowflake) Stagingbereich.

Für interne Stagingbereiche werden die folgenden Stagingbereichstypen unterstützt:

  • Benannter interner Stagingbereich

  • Stagingbereich einer spezifizierten Tabelle

  • Stagingbereich des aktuellen Benutzers

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.

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

Optionale Parameter

PATTERN = 'Muster_für_regAusdruck'

Gibt ein Muster für reguläre Ausdrücke zum Filtern von Dateien an, die entfernt werden sollen. Der Befehl listet alle Dateien im angegebenen Pfad auf und wendet auf jede der gefundenen Dateien das Muster für reguläre Ausdrücke an.

Nutzungshinweise

  • Das Entfernen von Dateien aus einem externen Stagingbereich erfordert die Erteilung der folgenden Rolle oder Berechtigung für Snowflake in Ihrem Cloudspeicherkonto:

    Cloudspeicherdienst

    Rolle oder Berechtigung

    Anleitung

    Amazon S3

    s3:DeleteObject

    Konfigurieren des sicheren Zugriffs auf Amazon S3

    Google Cloud Storage

    storage.objects.delete

    Konfigurieren einer Integration für Google Cloud Storage

    Microsoft Azure (Blob-Speicher)

    Storage Blob Data Contributor

    Konfigurieren eines Azure-Containers zum Laden von Daten

  • Mit diesem Befehl werden alle Verzeichnisse und Dateien entfernt, die mit einem angegebenen Pfad übereinstimmen. 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/;
    
  • Entfernen Sie nicht das Verzeichnis worksheet_data im Snowflake-Benutzer-Stagingbereich. Die klassische Weboberfläche speichert Metadaten für Arbeitsblätter auf der Registerkarte Worksheets Worksheet tab in diesem Verzeichnis. Durch das Entfernen des Verzeichnisses wird der Zugriff auf die Arbeitsblätter entfernt, die nicht wiederhergestellt werden können.

    Beachten Sie, dass diese Vorsichtsmaßnahme nicht für Snowsight-Arbeitsblätter der neuen Weboberfläche gilt, die an anderer Stelle gespeichert werden und nicht anfällig für versehentliches Löschen sind.

  • Wenn eine REMOVE-Anweisung unterbrochen wird, bevor die Ausführung abgeschlossen ist, werden alle Dateien, die bereits aus der Anweisung entfernt wurden, nicht wiederhergestellt.

Beispiele

Entfernen Sie alle Dateien aus dem path1/subpath2-Pfad eines internen Stagingbereichs mit dem Namen mystage:

REMOVE @mystage/path1/subpath2;

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