Copie de données à partir d’une zone de préparation Google Cloud Storage¶
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;
Important
La liste des objets renvoyés pour une zone de préparation externe peut inclure un ou plusieurs « blobs de répertoire » ; essentiellement, les chemins qui se terminent par une barre oblique (/
), par exemple :
LIST @my_gcs_stage;
+---------------------------------------+------+----------------------------------+-------------------------------+
| name | size | md5 | last_modified |
|---------------------------------------+------+----------------------------------+-------------------------------|
| my_gcs_stage/load/ | 12 | 12348f18bcb35e7b6b628ca12345678c | Mon, 11 Sep 2019 16:57:43 GMT |
| my_gcs_stage/load/data_0_0_0.csv.gz | 147 | 9765daba007a643bdff4eae10d43218y | Mon, 11 Sep 2019 18:13:07 GMT |
+---------------------------------------+------+----------------------------------+-------------------------------+
Ces blobs sont répertoriés lorsque des répertoires sont créés dans la console Google Cloud Platform plutôt que d’utiliser un autre outil fourni par Google.
Les instructions COPY qui font référence à une zone de préparation peuvent échouer lorsque la liste d’objets inclut des blobs de répertoire. Pour éviter les erreurs, nous vous recommandons d’utiliser la correspondance de motifs de fichier pour identifier les fichiers à inclure (c’est-à-dire la clause PATTERN) lorsque la liste de fichiers d’une zone de préparation inclut des blobs de répertoire. Pour un exemple, voir Chargement de données à l’aide de la correspondance de modèles (dans cette rubrique). Vous pouvez également définir ON_ERROR = SKIP_FILE dans l’instruction COPY.
Chargement de données à l’aide de la correspondance de modèles¶
L’exemple suivant charge les données à partir des fichiers de la zone de préparation nommée my_gcs_stage
créée dans Configuration d’une intégration pour Google Cloud Storage. 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_gcs_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.
Chargement de données à l’aide d’un chemin/préfixe¶
L’exemple suivant charge tous les fichiers avec le chemin data/files
(c.-à-d. un préfixe) dans votre compartiment Cloud Storage en utilisant le format de fichier nommé my_csv_format
créé dans Préparation au chargement de données : Notez qu’un chemin peut être combiné avec une correspondance des modèles :
COPY INTO mytable FROM @my_gcs_stage/mybucket/data/files FILE_FORMAT = (FORMAT_NAME = my_csv_format);
Chargement de données à l’aide d’options de format de fichier ad hoc¶
L’exemple ad hoc suivant charge les données de tous les fichiers dans le compartiment Cloud Storage. 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.
Notez que la référence à l’intégration du stockage est nécessaire dans les chargements de données ad hoc, c’est-à-dire lorsque l’instruction COPY ne fait pas référence à une zone de préparation :
COPY INTO mytable
FROM 'gcs://mybucket/data/files'
STORAGE_INTEGRATION = myint
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.