Copie de données à partir d’une zone de préparation interne

Chargez les données de vos fichiers en zone de préparation dans la table cible.

Dans ce chapitre :

Chargement de vos données

Exécutez COPY INTO <table> pour charger vos données préparées dans la table cible.

Note

Le chargement des données nécessite un entrepôt. 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;
Copy

Zone de préparation de l’utilisateur

L’exemple suivant charge les données de tous les fichiers préfixés par staged dans votre zone de préparation utilisateur en utilisant le format de fichier nommé my_csv_format créé dans Préparation au chargement de données :

COPY INTO mytable from @~/staged FILE_FORMAT = (FORMAT_NAME = 'my_csv_format');
Copy

Zone de préparation de table

L’exemple ad hoc suivant charge les données de tous les fichiers de la zone de préparation de la table mytable. La commande COPY spécifie les options de format de fichier au lieu de faire référence à un format de fichier nommé. Cet exemple charge des fichiers CSV avec un délimiteur de champ de type barre verticale (|). La commande COPY ignore la première ligne des fichiers de données :

COPY INTO mytable FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
Copy

Notez que lors de la copie de données à partir de fichiers dans une zone de préparation de table, la clause FROM peut être omise, car Snowflake vérifie automatiquement les fichiers dans la zone de préparation de table.

Zone de préparation nommée

L’exemple suivant charge les données de tous les fichiers de la zone de préparation nommée my_stage, qui a été créée dans Sélection d’une zone de préparation interne pour les fichiers locaux :

COPY INTO mytable from @my_stage;
Copy

Notez qu’un format de fichier n’a pas besoin d’être spécifié, car il est inclus dans la définition de zone de préparation.

Validation de vos données

Avant de charger vos données, vous pouvez vérifier que les données contenues dans les fichiers chargés se chargeront correctement.

Pour valider les données dans un fichier chargé, exécutez COPY INTO <table> en mode validation en utilisant le paramètre VALIDATION_MODE. Le paramètre VALIDATION_MODE renvoie toutes les erreurs qu’il rencontre dans un fichier. Vous pouvez ensuite modifier les données dans le fichier pour vous assurer qu’il se charge sans erreur.

De plus, l’option de copie ON_ERROR de la commande COPY INTO <table> spécifie l’action à effectuer si des erreurs sont rencontrées dans un fichier pendant le chargement.

Surveillance de fichiers en zone de préparation en interne

Snowflake conserve des métadonnées détaillées pour chaque fichier chargé dans la zone de préparation interne (pour les utilisateurs, les tables et les zones de préparation), notamment :

  • Nom de fichier

  • Taille du fichier (compressé, si la compression a été spécifiée lors du chargement)

  • La date LAST_MODIFIED est la date à laquelle le fichier de données a été initialement préparé ou modifié pour la dernière fois, la date la plus récente étant retenue.

De plus, Snowflake conserve les données historiques pour les commandes COPY INTO exécutées durant les 14 derniers jours. Les métadonnées peuvent être utilisées pour surveiller et gérer le processus de chargement, y compris la suppression des fichiers une fois le chargement terminé :

  • Utilisez la commande LIST pour voir le statut des fichiers de données mis en zone de préparation.

  • Surveillez le statut de chaque commande COPY INTO <table> sur la page History Onglet Historique de l”Classic Console.

  • Utilisez la fonction VALIDATE pour valider les fichiers de données que vous avez chargés et récupérer toutes les erreurs rencontrées pendant le chargement.

  • Utilisez la vue Schéma d’information LOAD_HISTORY pour récupérer l’historique des données chargées dans les tables en utilisant la commande COPY INTO.

Gestion des fichiers de données

Les fichiers préparés peuvent être supprimés d’une zone de préparation Snowflake (zone de préparation utilisateur, zone de préparation de table ou zone de préparation nommée) à l’aide des méthodes suivantes :

  • Les fichiers qui ont été chargés peuvent être supprimés de la zone de préparation au cours d’un chargement en spécifiant l’option de copie PURGE dans la commande COPY INTO <table>.

  • Une fois le chargement terminé, utilisez la commande REMOVE pour supprimer les fichiers de la zone de préparation.

En supprimant les fichiers, vous vous assurez qu’ils ne seront pas à nouveau chargés par inadvertance. Cela améliore également les performances de chargement, car cela réduit le nombre de fichiers que les commandes COPY doivent analyser pour vérifier si des fichiers existants dans une zone de préparation ont déjà été chargés.

Copie de fichiers d’une zone de préparation dans une autre

Utilisez la commande COPY FILES pour organiser les données en un seul endroit en copiant les fichiers d’une zone de préparation nommée dans une autre.

L’exemple suivant copie tous les fichiers d’une zone de préparation source (src_stage) dans une zone de préparation cible (trg_stage) :

COPY FILES
  INTO @trg_stage
  FROM @src_stage;
Copy

Vous pouvez également spécifier une liste de noms de fichiers à copier ou copier des fichiers en utilisant la correspondance de modèles. Pour des informations détaillées, voir les exemples de COPYFILES.