Étape 3. Copie de données dans la table cible¶
Exécutez COPY INTO <table> pour charger vos données préparées dans la table cible.
Les exemples suivants incluent la valeur du paramètre ON_ERROR = 'skip_file'
. Si la commande rencontre une erreur de données sur l’un des enregistrements, elle ignore le fichier. Si vous ne spécifiez pas de valeur ON_ERROR
, la valeur par défaut est ON_ERROR = 'abort_statement'
, ce qui annule la commande COPY lors de la première erreur rencontrée sur l’un des enregistrements d’un fichier.
Note
Le chargement des données dans des tables nécessite un entrepôt. Si vous avez créé un entrepôt en suivant les instructions énoncées dans les conditions préalables, passez à la section suivante. Si vous utilisez un entrepôt qui n’est pas configuré pour la reprise automatique, exécutez ALTER WAREHOUSE pour reprendre l’entrepôt. Notez que le démarrage de l’entrepôt peut prendre jusqu’à cinq minutes.
ALTER WAREHOUSE mywarehouse RESUME;
CSV¶
L’exemple suivant charge les données d’un seul fichier nommé contacts1.csv
situé dans le préfixe (dossier) /tutorials/dataloading/
à l’intérieur de la table mycsvtable
.
COPY INTO mycsvtable FROM @my_csv_stage/tutorials/dataloading/contacts1.csv ON_ERROR = 'skip_file';Snowflake renvoie les résultats suivants : Les données de
contacts1.csv
sont chargées avec succès.+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+ | 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 | +---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
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 table mycsvtable
.
COPY INTO mycsvtable FROM @my_csv_stage/tutorials/dataloading/ PATTERN='.*contacts[1-5].csv' ON_ERROR = 'skip_file';Snowflake renvoie les résultats suivants :
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 des fichiers suivants sont chargées avec succès :
contacts2.csv
contacts4.csv
contacts5.csv
Les données dans
contacts3.csv
sont ignorées en raison de 2 erreurs de données. L’étape suivante de ce tutoriel aborde le sujet de ces erreurs.+---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+ | 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 renvoie les résultats suivants : Les données de contacts.json
sont chargées avec succès.
+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+ | 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