Dans tes articles précédents, on charge les données avec un bon vieux :

COPY INTO sales_raw
FROM @stg_sales
FILE_FORMAT = (FORMAT_NAME = 'CSV_SALES_FORMAT');

Ça marche très bien pour du batch quand on lance la commande quand on veut, on maîtrise quand ça charge.

Mais dès qu'on a des fichiers qui tombent toute la journée dans un bucket, ou qu’on veut quelque chose de plus proche du temps réel, relancer un COPY à la main (ou même via une Task) n'est pas la meilleur option.

C'est exactement là que Snowflake sort Snowpipe et les Pipes.

C'est quoi un Pipe / Snowpipe concrètement ?

Concrètement, un pipe Snowflake, c'est juste un objet qui encapsule une commande COPY INTO avec toutes ses options (source @stage, file format, etc...).

Snowpipe, c'est le service managé de Snowflake qui surveille un stage (ou des events cloud) et déclenche automatiquement ce pipe dès qu'il détecte de nouveaux fichiers.

Sans Pipe, on est dans le mode :

“J'écris un COPY et je le lance moi-même.”

Avec un Pipe / Snowpipe, on passe en mode :

“J'écris une fois la logique de chargement et Snowflake s'occupe de déclencher le COPY quand de nouveaux fichiers arrivent.”

Tout ça repose sur ce qu'on a déjà vu :

  • le stage dit où sont les fichiers,
  • le file format dit comment les lire,
  • le Pipe dit quoi charger et vers quelle table (la requête COPY INTO préconfigurée).

Un exemple simple pour voir comment ça marche

On part d'un cas classique :

CREATE OR REPLACE TABLE sales_raw (
  id        NUMBER,
  sale_date DATE,
  amount    NUMBER(10,2),
  country   STRING
);

CREATE OR REPLACE STAGE stg_sales
  FILE_FORMAT = (FORMAT_NAME = 'CSV_SALES_FORMAT');

Sans Snowpipe, on ferait régulièrement :

COPY INTO sales_raw
FROM @stg_sales;

Avec Snowpipe, on crée un Pipe qui encapsule ce COPY :

CREATE OR REPLACE PIPE sales_pipe
AS
COPY INTO sales_raw
FROM @stg_sales;

Là, on vient de dire à Snowflake :
“Dès que tu vois des nouveaux fichiers dans @stg_sales, tu les charges dans sales_raw avec ces règles-là.”

Sur un stage interne, on peut déjà orchestrer l'ingestion en demandant à Snowpipe de scanner les nouveaux fichiers via :

ALTER PIPE sales_pipe REFRESH;

Ça dit à Snowflake : “Regarde les nouveaux fichiers dans ce stage et ingère-les via ce Pipe”.

Notification automatique sur un stage externe

Sur un stage externe (S3, Azure, GCS), on peut configurer des notifications côté cloud pour que, dès qu'un fichier arrive dans le bucket, Snowpipe soit prévenu et déclenche le Pipe tout seul.

Snowpipe n'est pas fait pour tout

Snowpipe est pratique quand :

  • Les fichiers arrivent au fil de l'eau,
  • On veut que les données soient chargées en table dès qu'un fichier arrive sur le stage
  • On n'a pas envie de gérer un scheduler juste pour vider un stage.

Pour un grand batch unique toutes les nuits, un COPY INTO classique dans une Task reste souvent plus simple et plus lisible.

Il faut aussi garder en tête que Snowpipe utilise du compute managé (serverless) et est facturé en crédits Snowpipe.

Snowpipe vs Task + COPY

Pour faire simple :

  • Si on veut un chargement en continu ou quasi temps réel à partir de fichiers qui arrivent sur un stage alors Snowpipe / Pipes font très bien le job.
  • Si on est sur un batch bien cadré, à une heure précise, avec d'autres étapes derrière (streams, transformations etc...) alors un COPY dans une Task (voire orchestré par Airflow) reste la meilleur option.

Les deux approches ne s'excluent pas du tout qu'on peut très bien avoir Snowpipe pour alimenter une table brute, puis derrière des streams + tasks ou Dynamic Tables pour alimenter le reste du pipeline.

Où se place Snowpipe dans la formation Snowflake ?

Snowpipe, c'est une brique de plus dans le puzzle de la formation Snowflake que je construis sur le blog.

Si tu découvres la série, tu peux reprendre le fil depuis le début :

Avec tout ça, Snowpipe vient compléter la chaîne :
Tu déposes des fichiers sur un stage → Snowpipe les charge en continu → streams + tasks ou Dynamic Tables prennent le relais pour tenir ton modèle à jour.

Aller plus loin : Formation Snowflake

J’ai regroupé tous mes articles Snowflake dans un parcours complet.

👉 Accéder à la Formation Snowflake

Vous voulez que je vous accompagne sur votre projet data (Snowflake, ingestion, modélisation, performance, coûts, gouvernance) ?
👉 Réserver un appel de 30 minutes