Stages, formats de fichier et COPY INTO

Automatisation des pipelines de données dans Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowflake alimente de nombreux workloads

Capture d’écran du 2026-05-11 à 11.52.34 am.png

1 * Documentation d’apprentissage Snowflake
Automatisation des pipelines de données dans Snowflake

Pipeline d’exemple

 

 

Capture d’écran du 2026-05-11 à 10.48.51 am.png

1 * Documentation d’apprentissage Snowflake
Automatisation des pipelines de données dans Snowflake

Découvrez Harbr

Faux logo pour Harbr

À propos de Harbr

  • Plateforme mondiale de logistique et chaîne d’approvisionnement
  • Utilise Snowflake pour suivre les envois, l’inventaire d’entrepôt et la performance de livraison
  • Ingestion de données des systèmes fournisseurs dans plusieurs régions
Automatisation des pipelines de données dans Snowflake

Le problème du chargement des données

Schéma de chargement des données

Stage = emplacement de stockage temporaire

Automatisation des pipelines de données dans Snowflake

Types de stages

Deux types de stages

Stages internes

  • Utilisateur
    • Espace personnel pour un seul utilisateur
  • Table
    • Lié à une table précise
  • Nommé
    • Objet de base de données créé dans le schéma

Stage externe

  • Nommé
    • Pointe vers un fournisseur infonuagique
Automatisation des pipelines de données dans Snowflake

Paramètres de stage

Table d’annuaire

CREATE STAGE harbr_stage
  DIRECTORY = (ENABLE = TRUE)

Chiffrement des stages internes

ENCRYPTION = (TYPE = SNOWFLAKE_FULL)
ENCRYPTION = (TYPE = SNOWFLAKE_SSE)

Chiffrement des stages externes

ENCRYPTION = 
([ TYPE = 'AWS_CSE' ] MASTER_KEY = '') 

ENCRYPTION = 
([ TYPE = 'AWS_SSE_S3' ]) 

...
Automatisation des pipelines de données dans Snowflake

Formats de fichier

  • Formats structurés : CSV avec délimiteurs, en-têtes, guillemets
  • Semi-structurés : JSON, Parquet, Avro, ORC et XML

    • Charger directement dans une colonne VARIANT
    • Définir une fois les règles d’analyse, réutiliser pour tous les chargements
  • Mettre à jour l’objet de format une seule fois

SQL

CREATE FILE FORMAT harbr_csv_format
  TYPE = 'CSV'
  FIELD_DELIMITER = ','
  SKIP_HEADER = 1;
Automatisation des pipelines de données dans Snowflake

COPY INTO

Charger depuis un stage nommé avec un format nommé

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
Automatisation des pipelines de données dans Snowflake

Gestion des erreurs

Options ON_ERROR Comportement
ABORT_STATEMENT Échec complet au premier message d’erreur (par défaut)
CONTINUE Ignorer les lignes erronées, charger le reste
SKIP_FILE Ignorer tout le fichier s’il contient des erreurs
SKIP_FILE_<num> Ignorer le fichier si les erreurs dépassent un nombre donné
SKIP_FILE_<num>% Ignorer le fichier si les erreurs dépassent un seuil en %
Automatisation des pipelines de données dans Snowflake

Mode de validation et COPY_HISTORY

Valider sans charger = simulation

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
VALIDATION_MODE = RETURN_ERRORS;

Consulter l’historique des chargements

SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
  TABLE_NAME => 'shipments',
  START_TIME => DATEADD('hour', -24,
    CURRENT_TIMESTAMP())));
Automatisation des pipelines de données dans Snowflake

Passons à la pratique !

Automatisation des pipelines de données dans Snowflake

Preparing Video For Download...