Étape 3. Copie de données dans la table cible¶
Exécutez COPY INTO <table> pour charger les données en zone de préparation dans les tables cibles.
CSV¶
Pour charger les données des fichiers CSV d’exemple :
Commencez par charger les données d’un des fichiers du préfixe (dossier)
/tutorials/dataloading/
nommécontacts1.csv
dans la tablemycsvtable
. Exécutez ce qui suit :COPY INTO mycsvtable FROM @my_csv_stage/tutorials/dataloading/contacts1.csv ON_ERROR = 'skip_file';
Où :
La clause
FROM
spécifie l’emplacement du fichier de données en zone de préparation (nom de la zone de préparation suivi du nom du fichier).La clause
ON_ERROR = 'skip_file'
spécifie ce qu’il faut faire lorsque la commande COPY rencontre des erreurs dans les fichiers. Dans ce cas, lorsque la commande rencontre une erreur de données sur l’un des enregistrements dans un fichier, elle ignore le fichier. Si vous ne spécifiez pas de clause ON_ERROR, la valeur par défaut estabort_statement
, ce qui annule la commande COPY lors de la première erreur rencontrée sur l’un des enregistrements d’un fichier.
La commande COPY renvoie un résultat indiquant le nom du fichier copié et les informations connexes :
+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+ | 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 | +---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
Chargez le reste des fichiers en zone de préparation dans la table
mycsvtable
.L’exemple suivant utilise le filtrage par critères spéciaux pour charger les données des fichiers correspondant à l’expression régulière
.*contacts[1-5].csv
à l’intérieur de la tablemycsvtable
.COPY INTO mycsvtable FROM @my_csv_stage/tutorials/dataloading/ PATTERN='.*contacts[1-5].csv' ON_ERROR = 'skip_file';
Où la clause
PATTERN
spécifie que la commande doit charger les données à partir des noms de fichiers correspondant à cette expression régulière.*contacts[1-5].csv
.La commande COPY renvoie un résultat indiquant le nom du fichier copié et les informations connexes :
+---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+ | 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 | +---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+
Notez les points suivants dans le résultat :
Les données de
contacts1.csv
sont ignorées parce que nous avons déjà chargé les données avec succès.Les données de ces fichiers ont été chargées avec succès :
contacts2.csv
,contacts4.csv
, etcontacts5.csv
.Les données dans
contacts3.csv
sont ignorées en raison de 2 erreurs de données. L’étape suivante de ce tutoriel traite de la validation et de la correction des erreurs.
JSON¶
Chargez le fichier de données en zone de préparation contacts.json
dans la table myjsontable
.
COPY INTO myjsontable FROM @my_json_stage/tutorials/dataloading/contacts.json ON_ERROR = 'skip_file';
COPY renvoie un résultat indiquant le nom du fichier copié et des informations connexes :
+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
| 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 |
+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
Suivant : Étape 4. Résolution des erreurs de chargement de données liées à des problèmes de données