Étape 4. 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.

Notez que cette commande nécessite un entrepôt virtuel actif en cours d’exécution que vous avez créé en tant que prérequis pour ce tutoriel. Si vous n’avez pas accès à un entrepôt, vous devrez en créer un maintenant.

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';

Regardons cette commande plus en détail :

  • La clause FROM identifie l’emplacement de la zone de préparation interne.

  • 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. L’instruction d’exemple COPY accepte toutes les autres options de format de fichier par défaut.

  • PATTERN applique le filtrage pour charger les données de tous les fichiers qui correspondent à l’expression régulière .*employees0[1-5].csv.gz .

  • 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.

Snowflake renvoie les résultats suivants :

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

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