Étape 5. Copie de données dans des tables cibles

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 du fichier nommé contacts1.csv.gz dans la table mycsvtable .

COPY INTO mycsvtable
  FROM @my_csv_stage/contacts1.csv.gz
  FILE_FORMAT = (FORMAT_NAME = mycsvformat)
  ON_ERROR = 'skip_file';

Snowflake retourne les résultats suivants indiquant que les données dans contacts1.csv.gz ont été 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 |
|-----------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| mycsvtable/contacts1.csv.gz | 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.gz à l’intérieur de la table mycsvtable .

COPY INTO mycsvtable
  FROM @my_csv_stage
  FILE_FORMAT = (FORMAT_NAME = mycsvformat)
  PATTERN='.*contacts[1-5].csv.gz'
  ON_ERROR = 'skip_file';

Snowflake renvoie les résultats suivants :

  • Les données de contacts1.csv.gz sont ignorées parce que nous avons déjà chargé les données avec succès.

  • Les données des fichiers suivants ont été chargées avec succès :

    • contacts2.csv.gz

    • contacts4.csv.gz

    • contacts5.csv.gz

  • Les données dans contacts3.csv.gz 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.

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

L’exemple suivant charge les données du fichier nommé contacts.json.gz dans la table myjsontable .

COPY INTO myjsontable
  FROM @my_json_stage/contacts.json.gz
  FILE_FORMAT = (FORMAT_NAME = myjsonformat)
  ON_ERROR = 'skip_file';

Snowflake renvoie les résultats suivants indiquant que les données de contacts1.csv.gz ont été 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 |
|------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| myjsontable/contacts.json.gz | LOADED |           3 |           3 |           1 |           0 |        NULL |             NULL |                  NULL |                    NULL |
+------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+

Suivant : Étape 6. Résolution des erreurs de chargement de données liées à des problèmes de données