Copy data from a Google Cloud Storage stage

Laden Sie Daten aus Ihren Stagingdateien in die Zieltabelle.

Load your data

Führen Sie COPY INTO <Tabelle> aus, um Ihre 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 das Starten eines Warehouse bis zu fünf Minuten dauern kann.

ALTER WAREHOUSE mywarehouse RESUME;
Copy

Wichtig

Die Liste der für einen externen Stagingbereich zurückgegebenen Objekte kann einen oder mehrere „Verzeichnis-Blobs“ enthalten. Dies sind im Wesentlichen Pfade, die mit einem Schrägstrich (/) enden. Beispiel:

LIST @my_gcs_stage;

+---------------------------------------+------+----------------------------------+-------------------------------+
| name                                  | size | md5                              | last_modified                 |
|---------------------------------------+------+----------------------------------+-------------------------------|
| my_gcs_stage/load/                    |  12  | 12348f18bcb35e7b6b628ca12345678c | Mon, 11 Sep 2019 16:57:43 GMT |
| my_gcs_stage/load/data_0_0_0.csv.gz   |  147 | 9765daba007a643bdff4eae10d43218y | Mon, 11 Sep 2019 18:13:07 GMT |
+---------------------------------------+------+----------------------------------+-------------------------------+
Copy

Diese Blobs werden bei der Erstellung von Verzeichnissen im Google Cloud console aufgeführt und nicht mit einem anderen von Google bereitgestellten Tool.

COPY statements that reference a stage can fail when the object list includes directory blobs. To avoid errors, we recommend using file pattern matching to identify the files for inclusion (i.e. the PATTERN clause) when the file list for a stage includes directory blobs. For an example, see Load data using pattern matching (in this topic). Alternatively, set ON_ERROR = SKIP_FILE in the COPY statement.

Load data using pattern matching

Im folgenden Beispiel werden Daten aus Dateien in den benannten my_gcs_stage-Stagingbereich geladen, der in Configure an integration for Google Cloud Storage erstellt wurden. Mithilfe der Mustererkennung lädt die Anweisung nur Dateien, deren Name mit der Zeichenfolge sales beginnen:

COPY INTO mytable
  FROM @my_gcs_stage
  PATTERN='.*sales.*.csv';
Copy

Beachten Sie, dass keine Dateiformatoptionen angegeben werden, da in der Stagingbereichsdefinition ein benanntes Dateiformat enthalten ist.

Load data using a path / prefix

Im folgenden Beispiel werden alle Dateien mit dem Präfix data/files in Ihren Cloud Storage-Bucket unter Verwendung des benannten Dateiformats my_csv_format geladen, das in Vorbereiten des Ladens von Daten erstellt wurde. Beachten Sie, dass ein Pfad mit der Mustererkennung kombiniert werden kann:

COPY INTO mytable
  FROM @my_gcs_stage/mybucket/data/files
  FILE_FORMAT = (FORMAT_NAME = my_csv_format);
Copy

Load data using ad hoc file format options

Im folgenden Ad-hoc-Beispiel werden Daten aus allen im Cloud Storage-Bucket befindlichen Dateien 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:

Beachten Sie, dass die Speicherintegrationsreferenz beim Ad-hoc-Laden von Daten erforderlich ist, d. h. wenn die COPY-Anweisung nicht auf einen Stagingbereich verweist:

COPY INTO mytable
  FROM 'gcs://mybucket/data/files'
  STORAGE_INTEGRATION = myint
  FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
Copy

Validate your data

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 Fehler zurück, die er in der Datei findet. Sie können dann die Daten in der Datei ändern, um sicherzustellen, dass sie ohne Fehler geladen werden.

Darüber hinaus stellt COPY INTO <Tabelle> die Kopieroption ON_ERROR zur Verfügung, um eine Aktion anzugeben, die ausgeführt werden soll, wenn beim Laden Fehler in einer Datei auftreten.

Monitor data loads

Snowflake speichert 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:

  • Monitor the status of each COPY INTO <Tabelle> command on the Query History page of Snowsight.

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

Copy files from one stage to another

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 Beispiele zu COPY FILES.