Copier des 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;
Copy

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

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

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 du chargement des 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);
Copy

Chargement de données à l’aide des 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);
Copy

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 charges 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 History tab 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.