Schritt 5. Daten in die Zieltabellen kopieren

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

Die folgenden Beispiele enthalten den Parameterwert ON_ERROR = 'skip_file'. Wenn der Befehl auf einen Datenfehler in einem der Datensätze stößt, wird die Datei übersprungen. Wenn Sie keinen ON_ERROR-Wert angeben, ist der Standard ON_ERROR = 'abort_statement', der den COPY-Befehl bei dem ersten Fehler abbricht, der bei einem der Datensätze in einer Datei auftritt.

Bemerkung

Für das Laden von Daten in Tabellen ist ein Warehouse erforderlich. Wenn Sie ein Warehouse angelegt haben, indem Sie den Anweisungen in den Voraussetzungen gefolgt sind, können Sie diesen Abschnitt überspringen. 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;

CSV

Im folgenden Beispiel werden Daten aus der Datei contacts1.csv.gz in die Tabelle mycsvtable geladen.

COPY INTO mycsvtable
  FROM @my_csv_stage/contacts1.csv.gz
  FILE_FORMAT = (FORMAT_NAME = mycsvformat)
  ON_ERROR = 'skip_file';

Snowflake liefert die folgenden Ergebnisse, die anzeigen, dass die Daten in contacts1.csv.gz erfolgreich geladen wurden.

+-----------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
| file                        | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name |
|-----------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| mycsvtable/contacts1.csv.gz | LOADED |           5 |           5 |           1 |           0 |        NULL |             NULL |                  NULL |                    NULL |
+-----------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+

Im folgenden Beispiel wird der Musterabgleich verwendet, um Daten aus allen Dateien, die dem regulären Ausdruck .*contacts[1-5].csv.gz entsprechen, in die Tabelle mycsvtable zu laden.

COPY INTO mycsvtable
  FROM @my_csv_stage
  FILE_FORMAT = (FORMAT_NAME = mycsvformat)
  PATTERN='.*contacts[1-5].csv.gz'
  ON_ERROR = 'skip_file';

Snowflake gibt die folgenden Ergebnisse zurück:

  • Die Daten in contacts1.csv.gz werden ignoriert, da Sie die Daten bereits erfolgreich geladen haben.

  • Die Daten der folgenden Dateien wurden erfolgreich geladen:

    • contacts2.csv.gz

    • contacts4.csv.gz

    • contacts5.csv.gz

  • Die Daten in contacts3.csv.gz wurden aufgrund von 2 Datenfehlern übersprungen. Der nächste Schritt in diesem Tutorial befasst sich mit der Validierung und Behebung der Fehler.

+-----------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+
| file                        | status      | rows_parsed | rows_loaded | error_limit | errors_seen | first_error                                                                                                                                                          | first_error_line | first_error_character | first_error_column_name |
|-----------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------|
| mycsvtable/contacts2.csv.gz | LOADED      |           5 |           5 |           1 |           0 | NULL                                                                                                                                                                 |             NULL |                  NULL | NULL                    |
| mycsvtable/contacts3.csv.gz | LOAD_FAILED |           5 |           0 |           1 |           2 | Number of columns in file (11) does not match that of the corresponding table (10), use file format option error_on_column_count_mismatch=false to ignore this error |                3 |                     1 | "MYCSVTABLE"[11]        |
| mycsvtable/contacts4.csv.gz | LOADED      |           5 |           5 |           1 |           0 | NULL                                                                                                                                                                 |             NULL |                  NULL | NULL                    |
| mycsvtable/contacts5.csv.gz | LOADED      |           6 |           6 |           1 |           0 | NULL                                                                                                                                                                 |             NULL |                  NULL | NULL                    |
+-----------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+

JSON

Im folgenden Beispiel werden Daten aus der Datei contacts.json.gz in die Tabelle myjsontable geladen.

COPY INTO myjsontable
  FROM @my_json_stage/contacts.json.gz
  FILE_FORMAT = (FORMAT_NAME = myjsonformat)
  ON_ERROR = 'skip_file';

Snowflake liefert die folgenden Ergebnisse, die anzeigen, dass die Daten in contacts1.csv.gz erfolgreich geladen wurden.

+------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
| file                         | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name |
|------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| myjsontable/contacts.json.gz | LOADED |           3 |           3 |           1 |           0 |        NULL |             NULL |                  NULL |                    NULL |
+------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+

Nächstes Thema: Schritt 6. Beheben von Datenladefehlern im Zusammenhang mit Datenproblemen