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

Erforderliche Parameter

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

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

Optionale Parameter

PATTERN = 'regex_pattern'

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 path (Pfad) auf und wendet auf jede der gefundenen Dateien das Muster für reguläre Ausdrücke an.

Nutzungshinweise

  • Wenn Sie Daten aus einer Datei in einem Stagingbereich laden, sollten Sie die Stagingdateien erst entfernen, nachdem die Daten erfolgreich geladen wurden. Um zu prüfen, ob die Daten erfolgreich geladen wurden, verwenden Sie den Befehl COPY_HISTORY. Überprüfen Sie die Spalte STATUS, um festzustellen, ob die Daten aus der Datei geladen wurden. Beachten Sie, dass bei einem Status von Load in progress durch das Entfernen der Stagingdatei die Daten möglicherweise nur teilweise geladen werden und es zu Datenverlusten kommen kann.

  • 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;
    
    Copy
  • Um alle Dateien eines bestimmten Verzeichnisses zu entfernen, fügen Sie am Ende des Pfads einen Schrägstrich (/) ein. Beispiel:

    rm @%mytable/myobject/;
    
    Copy
  • 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 Registerkarte „Arbeitsblatt“ in diesem Verzeichnis. Durch das Entfernen des Verzeichnisses wird der Zugriff auf die Arbeitsblätter entfernt, die nicht wiederhergestellt werden können.

    Diese Vorsichtsmaßnahme gilt nicht für Arbeitsblätter in Snowsight, 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 aller Dateien aus dem path1/subpath2-Pfad eines internen oder externen Stagingbereichs mit dem Namen mystage:

REMOVE @mystage/path1/subpath2;
Copy

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

REMOVE @%orders;
Copy

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