Étape 4. Copie de données dans la table cible

Exécutez COPY INTO <table> pour charger vos données en zone de préparation dans la table cible.

La commande COPY INTO <table> utilise l’entrepôt virtuel que vous avez créé dans Étape 2. Création d’objets Snowflake pour copier les fichiers.

COPY INTO emp_basic
  FROM @%emp_basic
  FILE_FORMAT = (type = csv field_optionally_enclosed_by='"')
  PATTERN = '.*employees0[1-5].csv.gz'
  ON_ERROR = 'skip_file';
Copy

Où :

  • La clause FROM spécifie l’emplacement contenant les fichiers de données (la zone de préparation interne de la table).

  • La clause FILE_FORMAT spécifie le type de fichier comme CSV, et spécifie le caractère de guillemet double (") comme caractère utilisé pour fermer les chaînes. Snowflake prend en charge différents types de fichier et options. Vous trouverez une description dans CREATE FILE FORMAT.

  • La clause PATTERN spécifie que la commande doit charger les données à partir des noms de fichiers correspondant à cette expression régulière (.*employees0[1-5].csv.gz).

  • La clause ON_ERROR spécifie ce qu’il faut faire lorsque la commande COPY rencontre des erreurs dans les fichiers. Par défaut, la commande arrête le chargement des données lorsque la première erreur est rencontrée. Cependant, nous lui avons demandé de sauter tout fichier contenant une erreur et de passer au chargement du fichier suivant. Notez qu’il ne s’agit que d’une illustration, aucun des fichiers de ce tutoriel ne contient d’erreurs.

La commande COPY propose également une option permettant de valider les fichiers avant de les charger. Voir les chapitres COPY INTO <table> et les autres tutoriels sur le chargement des données pour des instructions supplémentaires sur la vérification d’erreur et la validation.

La commande COPY renvoie un résultat indiquant la liste des fichiers copiés 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 |
|--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| employees02.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees04.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees05.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees03.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees01.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
+--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
Copy

Suivant : Étape 5. Interrogation des données chargées