Kopieren von Daten aus einem internen Stagingbereich

Laden Sie Daten aus Ihren Stagingdateien in die Zieltabelle.

Unter diesem Thema:

Laden Ihrer Daten

Führen Sie COPY INTO <Tabelle> aus, um die im Stagingbereich bereitgestellten Daten in die Zieltabelle zu laden.

Bemerkung

Das Laden von Daten erfordert ein Warehouse. Wenn Sie ein Warehouse verwenden, das nicht für die automatische Fortsetzung konfiguriert ist, führen Sie ALTER WAREHOUSE aus, um das Warehouse fortzusetzen. Beachten Sie, dass der Start des Warehouse bis zu fünf Minuten dauern kann.

ALTER WAREHOUSE mywarehouse RESUME;
Copy

Benutzer-Stagingbereich

Im folgenden Beispiel werden Daten aus allen Dateien mit dem Präfix staged in Ihren Benutzer-Stagingbereich mit dem benannten my_csv_format-Dateiformat geladen, der in Vorbereiten des Ladens von Daten erstellt wurde:

COPY INTO mytable from @~/staged FILE_FORMAT = (FORMAT_NAME = 'my_csv_format');
Copy

Tabellen-Stagingbereich

Im folgenden Ad-hoc-Beispiel werden Daten aus allen Dateien in den Stagingbereich der Tabelle mytable geladen. Der Befehl COPY gibt Dateiformatoptionen an, anstatt auf ein benanntes Dateiformat zu verweisen. In diesem Beispiel werden CSV-Dateien mit einem Feldtrennzeichen für Pipe (|) geladen. Der Befehl COPY überspringt die erste Zeile in den Datendateien:

COPY INTO mytable FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
Copy

Beachten Sie, dass beim Kopieren von Daten aus Dateien in einen Tabellen-Stagingbereich die FROM-Klausel weggelassen werden kann, da Snowflake automatisch nach Dateien im Tabellen-Stagingbereich sucht.

Benannter Stagingbereich

Im folgenden Beispiel werden Daten aus allen Dateien im benannten my_stage-Stagingbereich geladen, der in Auswahl eines internen Stagingbereichs für lokale Dateien erstellt wurde:

COPY INTO mytable from @my_stage;
Copy

Beachten Sie, dass ein Dateiformat nicht angegeben werden muss, da es in der Stagingbereichsdefinition enthalten ist.

Validieren Ihrer Daten

Vor dem Laden Ihrer Daten können Sie überprüfen, ob die Daten in den hochgeladenen Dateien korrekt geladen werden.

Um Daten in einer hochgeladenen Datei zu validieren, führen Sie COPY INTO <Tabelle> im Validierungsmodus mit dem Parameter VALIDATION_MODE aus. Der Parameter VALIDATION_MODE gibt alle Fehler zurück, die er in einer Datei findet. Sie können dann die Daten in der Datei ändern, um sicherzustellen, dass sie ohne Fehler geladen werden.

Darüber hinaus gibt die Kopieroption ON_ERROR für den Befehl COPY INTO <Tabelle> an, welche Aktion ausgeführt werden soll, wenn beim Laden Fehler in einer Datei auftreten.

Überwachen von intern bereitgestellten Dateien

Snowflake verwaltet detaillierte Metadaten für jede Datei, die in den internen Stagingbereich hochgeladen wird (für Benutzer, Tabellen und Stagingbereiche), einschließlich:

  • Dateiname

  • Dateigröße (komprimiert, wenn beim Upload Kompression angegeben wurde)

  • LAST_MODIFIED-Datum, d. h. der Zeitstempel, an dem die Datendatei ursprünglich bereitgestellt wurde oder wann sie zuletzt geändert wurde, je nachdem, welcher Zeitpunkt später liegt.

Darüber hinaus speichert Snowflake historische Daten für COPY INTO-Befehle, die in den letzten 14 Tagen ausgeführt wurden. Die Metadaten können zur Überwachung und Verwaltung des Ladevorgangs verwendet werden, einschließlich des Löschens von Dateien nach Abschluss des Hochladens:

  • Verwenden Sie den Befehl LIST, um den Status von Datendateien anzuzeigen, die im Stagingbereich bereitgestellt wurden.

  • Überwachen Sie auf der Seite History Registerkarte „Verlauf“ der klassischen Weboberfläche den Status der einzelnen COPY INTO <Tabelle>-Befehle.

  • Verwenden Sie die Funktion VALIDATE, um die geladenen Datendateien zu überprüfen und alle Fehler abzurufen, die beim Laden aufgetreten sind.

  • Verwenden Sie die Information Schema-Ansicht LOAD_HISTORY, um den Verlauf der in Tabellen geladenen Daten mit dem Befehl COPY INTO abzurufen.

Verwalten von Datendateien

Bereitgestellte Dateien können aus einem Snowflake-Stagingbereich (Benutzer-Stagingbereich, Tabellen-Stagingbereich oder benannter Stagingbereich) mit den folgenden Methoden gelöscht werden:

  • Dateien, die erfolgreich geladen wurden, können während eines Ladevorgangs aus dem Stagingbereich gelöscht werden, indem Sie die Kopieroption PURGE im Befehl COPY INTO <Tabelle> angeben.

  • Nachdem das Laden abgeschlossen ist, verwenden Sie den Befehl REMOVE, um die Dateien aus dem Stagingbereich zu entfernen.

Das Entfernen von Dateien stellt sicher, dass sie nicht versehentlich erneut geladen werden. Es verbessert auch die Ladeleistung, da es die Anzahl der Dateien reduziert, die COPY-Befehle scannen müssen, um zu überprüfen, ob bereits vorhandene Dateien in einem Stagingbereich bereits geladen wurden.

Kopieren von Dateien zwischen Stagingbereichen

Verwenden Sie den Befehl COPY FILES, um Daten an einem einzigen Ort zu organisieren, indem Sie Dateien von einem benannten Stagingbereich in einen anderen kopieren.

Im folgenden Beispiel werden alle Dateien von einem Quell-Stagingbereich (src_stage) in einen Ziel-Stagingbereich (trg_stage) kopiert:

COPY FILES
  INTO @trg_stage
  FROM @src_stage;
Copy

Sie können auch eine Liste von Dateinamen angeben, die kopiert werden sollen, oder Dateien mithilfe der Mustererkennung kopieren. Weitere Informationen dazu finden Sie unter COPY FILES-Beispiele.