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