Copie des données d’une zone de préparation S3¶
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 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;
L’exemple suivant charge les données à partir des fichiers de la zone de préparation nommée my_ext_stage
créée dans Création d’une zone de préparation S3. En utilisant des critères spéciaux, l’instruction ne charge que les fichiers dont le nom commence par la chaîne sales
:
COPY INTO mytable FROM @my_ext_stage PATTERN='.*sales.*.csv';
Notez que les options de format de fichier ne sont pas spécifiées, car un format de fichier nommé a été inclus dans la définition de la zone de préparation.
L’exemple suivant charge tous les fichiers préfixés avec data/files
dans votre compartiment S3 en utilisant le format de fichier nommé my_csv_format
créé dans Préparation au chargement de données :
COPY INTO mytable FROM s3://mybucket/data/files credentials=(AWS_KEY_ID='$AWS_ACCESS_KEY_ID' AWS_SECRET_KEY='$AWS_SECRET_ACCESS_KEY') FILE_FORMAT = (FORMAT_NAME = my_csv_format);
L’exemple ad hoc suivant charge les données de tous les fichiers dans le compartiment S3. 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
FROM s3://mybucket credentials=(AWS_KEY_ID='$AWS_ACCESS_KEY_ID' AWS_SECRET_KEY='$AWS_SECRET_ACCESS_KEY')
FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
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 les erreurs qu’il rencontre dans le fichier. Vous pouvez ensuite modifier les données dans le fichier pour vous assurer qu’il se charge sans erreur.
De plus, COPY INTO <table> fournit l’option de copie ON_ERROR pour spécifier une action à effectuer si des erreurs sont rencontrées dans un fichier pendant le chargement.
Surveillance des chargements de données¶
Snowflake conserve seulement 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é :
Surveillez le statut de chaque commande COPY INTO <table> sur la page History de l”Classic Console.
Utilisez la vue Information Schema LOAD_HISTORY pour récupérer l’historique des données chargées dans les tables en utilisant la commande COPY INTO.
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;
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.