Schritt 3: Daten in die Zieltabelle kopieren

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

CSV

So laden Sie die Daten aus den CSV-Beispieldateien:

  1. Laden Sie zunächst die Daten aus einer der Dateien im Ordner /tutorials/dataloading/ mit dem Namen contacts1.csv in die Tabelle mycsvtable. Führen Sie den folgenden Befehl aus:

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

    Wobei:

    • Die FROM-Klausel gibt den Speicherort der Staging-Datendatei an (Stagingbereichsname gefolgt vom Dateinamen).

    • Die ON_ERROR = 'skip_file'-Klausel gibt an, was zu tun ist, wenn der COPY-Befehl Fehler in den Dateien feststellt. Wenn in diesem Fall der Befehl in einem der Datensätze einer Datei auf einen Datenfehler stößt, wird diese Datei übersprungen. Wenn Sie keine ON_ERROR-Klausel angeben, wird standardmäßig abort_statement verwendet, wodurch der COPY-Befehl beim ersten Fehler abgebrochen wird, der bei einem der Datensätze einer Datei auftritt.

    Der COPY-Befehl gibt als Ergebnis die Namen der kopierten Dateien und zugehörige Informationen zurück:

    +---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
    | 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 |
    +---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
    
    Copy
  2. Laden Sie den Rest der Stagingdateien in die Tabelle mycsvtable.

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

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

    Dabei gibt die PATTERN-Klausel an, dass der Befehl Daten aus Dateien mit Namen laden soll, die mit dem regulären Ausdruck .*contacts[1-5].csv übereinstimmen.

    Der COPY-Befehl gibt als Ergebnis die Namen der kopierten Dateien und zugehörige Informationen zurück:

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

    Das Ergebnis liefert die folgenden Informationen:

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

    • Die Daten folgender Dateien wurden erfolgreich geladen: contacts2.csv, contacts4.csv und contacts5.csv.

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

JSON

Laden Sie die Staging-Datendatei contacts.json in die Tabelle myjsontable.

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

COPY gibt ein Ergebnis zurück, das den Namen der kopierten Datei und zugehörige Informationen enthält:

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

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