Schritt 3: Daten in die Zieltabelle 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 einer einzelnen Datei im /tutorials/dataloading/-Präfix (Ordner) namens contacts1.csv in die mycsvtable-Tabelle geladen.

COPY INTO mycsvtable
  FROM @my_csv_stage/tutorials/dataloading/contacts1.csv
  ON_ERROR = 'skip_file';

Snowflake liefert die folgenden Ergebnisse. Die Daten in contacts1.csv werden erfolgreich geladen.

+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
| file                                                    | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name |
|---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| s3://snowflake-docs/tutorials/dataloading/contacts1.csv | LOADED |           5 |           5 |           1 |           0 |        NULL |             NULL |                  NULL |                    NULL |
+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+

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

COPY INTO mycsvtable
  FROM @my_csv_stage/tutorials/dataloading/
  PATTERN='.*contacts[1-5].csv'
  ON_ERROR = 'skip_file';

Snowflake gibt die folgenden Ergebnisse zurück:

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

  • Die Daten in den folgenden Dateien wurden erfolgreich geladen:

    • contacts2.csv

    • contacts4.csv

    • contacts5.csv

  • Die Daten in contacts3.csv werden aufgrund von 2 Datenfehlern übersprungen. Der nächste Schritt in diesem Tutorial behandelt die Fehler.

+---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+
| file                                                    | status      | rows_parsed | rows_loaded | error_limit | errors_seen | first_error                                                                                                                                                          | first_error_line | first_error_character | first_error_column_name |
|---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------|
| s3://snowflake-docs/tutorials/dataloading/contacts2.csv | LOADED      |           5 |           5 |           1 |           0 | NULL                                                                                                                                                                 |             NULL |                  NULL | NULL                    |
| s3://snowflake-docs/tutorials/dataloading/contacts3.csv | 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]        |
| s3://snowflake-docs/tutorials/dataloading/contacts4.csv | LOADED      |           5 |           5 |           1 |           0 | NULL                                                                                                                                                                 |             NULL |                  NULL | NULL                    |
| s3://snowflake-docs/tutorials/dataloading/contacts5.csv | LOADED      |           6 |           6 |           1 |           0 | NULL                                                                                                                                                                 |             NULL |                  NULL | NULL                    |
+---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+

JSON

COPY INTO myjsontable
  FROM @my_json_stage/tutorials/dataloading/contacts.json
  ON_ERROR = 'skip_file';

Snowflake liefert die folgenden Ergebnisse. Die Daten in contacts.json werden erfolgreich geladen.

+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
| file                                                    | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name |
|---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| s3://snowflake-docs/tutorials/dataloading/contacts.json | LOADED |           3 |           3 |           1 |           0 |        NULL |             NULL |                  NULL |                    NULL |
+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+

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