Une architecture de pipeline de données est l'ensemble des composants et l'ordre dans lequel ils s'exécutent pour déplacer les données de leur source vers l'endroit où elles sont utilisées. Définissez correctement cette structure et les analystes interrogeront des tables fraîches et fiables sans se soucier de la façon dont les données y sont arrivées ; définissez-la mal et vous passerez votre semaine à chercher des lignes manquantes, des champs malformés et des tâches qui ont silencieusement cessé de s'exécuter. Ce guide est une présentation conceptuelle de cette architecture pour les ingénieurs : les étapes canoniques, le batch versus le streaming, la façon dont l'ensemble est orchestré, comment le maintenir observable, et la place des données scraped dans ce schéma.

Le cadrage ici est délibérément pratique. La plupart des schémas de pipeline semblent bien ordonnés sur un tableau blanc et s'effondrent dès qu'une source en amont change de schéma ou qu'un site tiers bloque votre collecteur. Ainsi, aux côtés du modèle propre, ce guide couvre les parties qui cassent vraiment, et traite la couche d'ingestion, l'endroit où les données externes entrent dans votre système, comme une préoccupation de premier plan plutôt qu'une réflexion après coup.

Ce qu'est réellement une architecture de pipeline de données

Dans son essence, un pipeline de données est un flux dirigé : les données entrent, traversent une série de transformations et atterrissent quelque part où elles peuvent être lues. L'architecture est le contrat autour de ce flux : quelles sources l'alimentent, ce que chaque étape garantit, comment les défaillances sont gérées, et comment l'ensemble est planifié et surveillé. C'est la différence entre un script ponctuel et un système sur lequel vous pouvez compter à 3 h du matin.

La valeur de le traiter comme une architecture plutôt que comme du code de liaison est la consolidation et l'uniformité. Un vrai pipeline extrait des données de nombreuses sources, y compris des bases de données, des API, des flux d'événements et des pages web scraped, et remodèle toutes ces données dans un format cohérent unique en un seul endroit. C'est cet entonnoir unique qui permet à une équipe d'interroger les sources sans réconcilier manuellement cinq formats différents, et c'est ce qui réduit la friction entre l'arrivée des données brutes et la production d'un insight à l'autre bout.

Les étapes d'un pipeline de données

Presque tous les pipelines, quel que soit l'outillage, suivent les mêmes étapes canoniques dans l'ordre. La terminologie varie entre les équipes, mais la séquence ne change pas :

  • Ingestion / collecte. Les données entrent dans le pipeline depuis leurs sources : bases de données opérationnelles, API tierces, flux d'événements, fichiers et le web. C'est ici que les enregistrements bruts arrivent en premier, souvent dans une zone de transit avant que quoi que ce soit ne les touche.
  • Traitement / transformation. Les données brutes sont nettoyées, standardisées, validées, dédupliquées, jointes entre les sources et remodelées dans le schéma attendu par les consommateurs en aval. Les unités, les dates et les catégories sont normalisées ici, et les enregistrements corrompus ou invalides sont corrigés ou supprimés.
  • Stockage. Les données transformées sont écrites dans une destination durable, typiquement un entrepôt de données, un lac de données ou les deux. C'est le système d'enregistrement que tout ce qui est en aval lit.
  • Service / analyse. Les données stockées sont exposées à leurs consommateurs : tableaux de bord BI, SQL ad hoc, tâches d'entraînement de machine learning, reverse-ETL vers des outils opérationnels ou une API. C'est l'étape qui justifie toutes les autres.

Deux préoccupations transversales englobent chaque étape plutôt que de se situer entre elles. L'orchestration décide quand chaque étape s'exécute et dans quel ordre, et la surveillance vérifie que chaque étape a fait ce qu'elle prétendait. Ni l'une ni l'autre n'est une étape par laquelle on passe une seule fois ; toutes deux s'exécutent pendant toute la durée de vie du pipeline. Nous revenons sur chacune ci-dessous.

Les quatre étapes, dans l'ordre. Les données se déplacent de gauche à droite à travers l'ingestion, le traitement, le stockage et le service, tandis que l'orchestration et la surveillance couvrent toutes ces étapes pendant toute la durée de vie du pipeline.

ETL vs ELT : où la transformation se produit

Le modèle classique est l'ETL : Extract, Transform, Load. Vous extrayez des données des sources, les remodelaz dans une couche de traitement dédiée, et chargez le résultat fini dans l'entrepôt. Cela maintient l'entrepôt propre mais signifie que la logique de transformation vit en dehors de lui.

Le modèle moderne par défaut a basculé vers l'ELT : Extract, Load, Transform. Vous déposez d'abord les données brutes dans un entrepôt cloud, puis vous les transformez sur place avec SQL. Le stockage est assez bon marché pour que la conservation des données brutes soit rentable, car vous pouvez redériver n'importe quelle table lorsque les besoins changent, au lieu de recolleceter depuis la source. Pour les données scraped, cela compte beaucoup : réexécuter une transformation est gratuit, mais re-crawler un site auquel vous n'avez plus accès ne l'est pas. Conservez le HTML ou le JSON brut que vous avez collecté, et l'ELT vous permet de corriger un bug de parsing des mois plus tard sans toucher à nouveau à la source.

Batch ou streaming

Le choix architectural le plus important est la fréquence à laquelle les données se déplacent. Les pipelines batch collectent les données sur une fenêtre temporelle (une heure, un jour, une exécution fixe) et les traitent en groupe. Ils sont plus simples à comprendre, moins coûteux à exploiter, faciles à retraiter, et corrects pour la grande majorité des travaux d'analyse. Si l'objectif est un récapitulatif des ventes quotidiennes, le batch est presque toujours la bonne réponse.

Les pipelines en streaming traitent les enregistrements de manière continue, événement par événement, à leur arrivée, généralement via un journal comme Kafka ou un équivalent géré. Vous optez pour le streaming lorsque la fraîcheur est le produit : détection de fraude, tarification en direct, surveillance concurrentielle en temps réel, tout ce pour quoi une réponse vieille d'une heure est une mauvaise réponse. Le coût est réel, cependant, car les systèmes de streaming sont plus difficiles à tester, plus difficiles à retraiter, et exigent dès le premier jour de réfléchir aux événements arrivant en retard ou dans le désordre.

Beaucoup de configurations matures utilisent un hybride : un chemin en streaming pour les quelques métriques qui doivent être en direct, et un chemin batch pour tout le reste, souvent en conservant les données brutes pour que de nouvelles questions puissent trouver réponse plus tard sans recollecte. Choisissez le modèle le plus simple qui répond à l'exigence réelle de fraîcheur, et résistez au streaming d'un chiffre que personne ne lit avant le lendemain.

La latence est une exigence, pas un paramètre par défaut

Avant de choisir le streaming, notez par écrit la fraîcheur dont l'entreprise a réellement besoin en chiffres concrets. « Dans les cinq minutes » et « d'ici demain matin » conduisent à des architectures, des coûts d'exploitation et des charges de garde complètement différents. La plupart des équipes surestiment la fraîcheur requise de leurs données et paient pour une complexité de streaming qu'elles n'utilisent jamais.

Orchestration et planification

Dès que vous avez plus d'une étape, quelque chose doit décider ce qui s'exécute, dans quel ordre, et ce qui se passe lorsqu'une étape échoue. C'est l'orchestration, et c'est le système nerveux du pipeline. Un planificateur lance les tâches selon une cadence ou en réponse à un événement ; un orchestrateur modélise les dépendances entre les tâches afin qu'une transformation ne s'exécute qu'après le succès de son ingestion, et qu'une défaillance arrête tout ce qui est en aval plutôt que d'alimenter des données erronées vers l'avant.

En pratique, c'est un graphe acyclique orienté (DAG) : chaque nœud est une tâche, chaque arête est une dépendance, et l'orchestrateur parcourt le graphe en réessayant les défaillances transitoires et en surfaçant les défaillances permanentes. Des outils comme Airflow, Dagster et Prefect existent précisément pour cela. Le point architectural est indépendant de l'outil : automatisez la planification pour que les exécutions soient reproductibles, rendez les dépendances explicites pour que les défaillances soient contenues, et rendez l'ensemble du graphe idempotent pour qu'une réexécution produise le même résultat au lieu de doubler le comptage.

Voici une esquisse minimale d'un DAG quotidien qui collecte, transforme et charge, la forme de l'orchestration plutôt que du code de production :

python
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime

with DAG(
    dag_id='market_prices',
    schedule='@daily',
    start_date=datetime(2026, 1, 1),
    catchup=False,
) as dag:
    ingest = PythonOperator(task_id='ingest', python_callable=collect_pages)
    transform = PythonOperator(task_id='transform', python_callable=clean_and_parse)
    load = PythonOperator(task_id='load', python_callable=write_to_warehouse)

    ingest >> transform >> load

Les opérateurs >> déclarent la chaîne de dépendances : transform attend ingest, load attend transform. Si l'ingestion échoue, rien en aval ne s'exécute, ce qui est exactement le comportement voulu.

Surveillance et qualité des données

Un pipeline que vous ne pouvez pas observer est un pipeline en lequel vous ne pouvez pas avoir confiance. La surveillance se divise en deux questions qu'il est facile de confondre. La première est opérationnelle : la tâche s'est-elle exécutée, quand a-t-elle démarré et terminé, quelle était sa durée d'exécution, s'est-elle terminée proprement, et que disaient les erreurs. C'est la même discipline que vous appliquez à n'importe quel système de production, et sans elle vous n'avez aucun moyen de savoir si le pipeline est même en vie.

La deuxième question est plus difficile et plus importante : les données sont-elles correctes ? Une tâche peut se terminer avec le code zéro et produire quand même des données incorrectes. Les vérifications de qualité des données appartiennent au pipeline comme des barrières, pas à un tableau de bord après coup. Vérifiez que le nombre de lignes se situe dans une plage attendue, que les colonnes clés ne sont pas nulles, que les valeurs correspondent aux formats attendus, et que le volume du jour n'a pas silencieusement chuté à un dixième de celui d'hier. Quand une vérification échoue, le pipeline doit s'arrêter et alerter plutôt que de charger des données incorrectes et les laisser se propager dans chaque rapport en aval.

Pour les sources scraped, la surveillance de la qualité des données fait aussi office de surveillance de la collecte. Une soudaine baisse des enregistrements parsés signifie généralement que le site source a changé son balisage ou a commencé à vous bloquer, pas que le monde manquait de données. Traiter une baisse de volume comme une alerte de premier niveau transforme une défaillance silencieuse en une action concrète.

La place des données web scraped dans le pipeline

Les données web constituent l'une des sources externes les plus riches que vous puissiez alimenter dans un pipeline, notamment les prix, les annonces, les avis et les signaux publics de marché, mais c'est aussi la plus hostile sur le plan opérationnel. Les bases de données internes et les API partenaires vous offrent des structures propres et stables. Le web ouvert vous offre du HTML rendu derrière des défenses anti-bot qui changent sans préavis. Cette hostilité réside entièrement dans l'étape d'ingestion, de sorte que la fiabilité de l'ensemble de votre pipeline dépend souvent de la robustesse de votre couche de collecte.

Tenter de construire cette couche vous-même signifie gérer des navigateurs headless pour rendre des pages à forte utilisation de JavaScript, maintenir un pool de proxies résidentiels afin de ne pas être bloqué dès la première requête, résoudre les CAPTCHA et maintenir tout cela en bonne santé à mesure que les cibles évoluent. C'est un système permanent à opérer, et cela n'a rien à voir avec vos transformations réelles. Le choix pragmatique est de traiter la collecte comme un service géré afin que l'étape d'ingestion fournisse des données propres à votre pipeline et que vous consacriez votre temps d'ingénierie en aval. Pour le guide général sur le maintien de la capacité de collecte, comment scraper des sites web sans se faire bloquer couvre en profondeur les modes de défaillance.

C'est là que Crawlbase s'intègre comme couche d'ingestion. La Crawling API prend une URL plus un token JavaScript optionnel, rend la page dans un vrai navigateur derrière une IP résidentielle rotative, et renvoie le HTML terminé ou le JSON parsé, de sorte qu'un magasin ou une place de marché rendu côté client revient entièrement rempli en un seul appel. Pour le routage HTTP brut que vous contrôlez directement, le Smart AI Proxy expose la même infrastructure d'IP rotatives comme endpoint proxy standard, et la Crawling API renvoie des champs structurés pour les types de pages courants afin que vous puissiez éviter d'écrire des parsers.

Crawlbase comme couche d'ingestion

Faites de la collecte l'étape fiable de votre pipeline au lieu de l'étape instable. La Crawling API rend les pages JavaScript derrière des IP résidentielles rotatives et renvoie du HTML ou JSON propre en un seul appel, de sorte que la tâche d'ingestion de votre DAG se contente de récupérer des données. Démarrez sur le niveau gratuit et pointez-la vers une source réelle avant de câbler le reste.

Une tâche d'ingestion minimale utilisant la Crawling API ressemble à ceci, un seul appel qui renvoie du HTML rendu prêt pour votre étape de transformation :

python
from crawlbase import CrawlingAPI

api = CrawlingAPI({'token': 'YOUR_CRAWLBASE_JS_TOKEN'})

def collect_page(url):
    response = api.get(url, {'ajax_wait': True, 'page_wait': 5000})
    if response['status_code'] == 200:
        return response['body']  # rendered HTML, ready to parse
    raise RuntimeError(f'collect failed: {response["status_code"]}')

Mettre à l'échelle l'ingestion avec un crawler asynchrone

Un appel synchrone par URL convient pour des centaines de pages. Une fois que vous collectez des dizaines ou des centaines de milliers d'URL selon un planning, bloquer votre DAG sur chaque requête cesse d'avoir du sens. C'est le seuil où vous passez d'une API synchrone à une API asynchrone.

Le Crawler est conçu pour cette échelle. Vous poussez de grands lots d'URL dans une file d'attente et le service les crawle de manière asynchrone en arrière-plan, puis délivre chaque résultat à un endpoint de callback (webhook) que vous contrôlez à mesure qu'il se termine, plutôt que de vous obliger à maintenir une connexion ouverte par page. Votre étape d'ingestion devient « mettre en file d'attente les URL et avancer », et un gestionnaire séparé écrit les résultats en zone de transit à mesure que les callbacks arrivent. Ce découplage est exactement le modèle batch appliqué à la collecte, et il empêche un crawl massif de devenir une seule tâche de longue durée et fragile. Pour une collecte à l'échelle de l'organisation avec un débit dédié et un support, le niveau enterprise étend le même modèle.

Pour la zone de transit, Crawlbase Storage peut conserver les réponses crawlées afin que la collecte et le parsing restent découplés : le crawler écrit les réponses brutes dans le stockage, et votre étape de transformation les lit depuis là selon son propre planning. Cette séparation est à nouveau le modèle ELT, avec les données brutes préservées pour que vous puissiez les reparsez plus tard sans re-crawler. L'économie compte aussi ici, car la collecte est généralement l'étape la plus coûteuse d'un pipeline de données web ; pour des façons de maîtriser ce coût, consultez le web scraping pour l'e-commerce, qui parcourt un scénario de collecte à grand volume de bout en bout.

Une architecture de référence pour les pipelines de données web

En assemblant les pièces, un pipeline robuste pour les données issues du web ressemble généralement à ceci. Un orchestrateur s'exécute selon un planning et met en file d'attente les URL cibles vers le crawler asynchrone. Le crawler collecte de manière asynchrone et écrit les réponses brutes dans un stockage de transit, sans y toucher. Une étape de transformation lit les réponses brutes, les parse en lignes structurées, applique des barrières de qualité des données, et charge la sortie propre dans l'entrepôt. Les outils de service lisent ensuite depuis l'entrepôt, jamais depuis le collecteur.

La discipline qui fait tenir cela est de garder chaque préoccupation dans sa propre étape. La collecte ne parse pas ; la transformation ne collecte pas ; le service ne touche pas aux données brutes. Quand un site cible change son balisage, vous corrigez la transformation et retraitez depuis la zone de transit, sans re-crawler. Quand vous avez besoin d'une cadence plus rapide, vous changez le planning, pas le code. Et parce que les données brutes sont préservées, un bug de parsing découvert au sixième mois est un retraitement, pas une perte de données. Si les proxies et la rotation d'IP sont un nouveau territoire, qu'est-ce qu'un serveur proxy est une introduction utile à la couche sous-jacente à votre étape d'ingestion.

Récapitulatif

Points clés

  • Les étapes sont universelles. Ingestion, traitement, stockage et service, dans cet ordre, avec l'orchestration et la surveillance qui les englobent toutes. Les outils changent ; la séquence ne change pas.
  • Choisissez le batch sauf si la fraîcheur est le produit. Le streaming est puissant et coûteux ; notez par écrit la latence dont l'entreprise a réellement besoin avant de l'adopter.
  • Préférez l'ELT et conservez les données brutes. Déposer d'abord les données brutes vous permet de redériver les tables quand les besoins changent, ce qui est critique quand la recollecte depuis la source est coûteuse ou impossible.
  • Orchestrez avec des dépendances explicites. Un DAG avec des tâches idempotentes et pouvant être réessayées contient les défaillances au lieu d'alimenter des données erronées en aval.
  • Surveillez la qualité des données, pas seulement le statut des tâches. Une tâche peut se terminer proprement et produire quand même de mauvaises données ; imposez des barrières sur le nombre de lignes, les valeurs nulles et les formats à l'intérieur du pipeline.
  • Traitez l'ingestion comme une préoccupation gérée. La collecte web est l'étape la plus hostile ; utiliser la Crawling API ou le Crawler asynchrone pour cela maintient le reste de votre pipeline simple.

Foire aux questions

Qu'est-ce que l'architecture de pipeline de données en termes simples ?

C'est l'ensemble des composants et l'ordre dans lequel ils s'exécutent pour déplacer les données de là où elles sont créées vers là où elles sont utilisées. Le flux canonique est l'ingestion, puis le traitement et la transformation, puis le stockage, puis le service ou l'analyse, avec l'orchestration qui décide quand chaque étape s'exécute et la surveillance qui confirme que chaque étape a fonctionné. L'architecture est le contrat autour de ce flux : ce que chaque étape garantit et comment les défaillances sont gérées.

Quelle est la différence entre ETL et ELT ?

Les deux extraient, chargent et transforment des données ; la différence est l'ordre. L'ETL transforme les données dans une couche dédiée avant de charger le résultat fini dans l'entrepôt. L'ELT charge d'abord les données brutes dans l'entrepôt et les transforme là avec SQL. L'ELT est le standard moderne car le stockage bon marché rend la conservation des données brutes rentable : vous pouvez redériver n'importe quelle table quand les besoins changent, au lieu de recolleceter depuis la source.

Quand devrais-je utiliser un pipeline en streaming plutôt qu'en batch ?

Utilisez le streaming uniquement quand la fraîcheur est le produit, par exemple la détection de fraude, la tarification en direct ou la surveillance en temps réel où une réponse vieille d'une heure est incorrecte. Pour la grande majorité des analyses, le batch est plus simple, moins coûteux, plus facile à retraiter et correct. Décidez en notant par écrit la latence que l'entreprise exige réellement ; la plupart des équipes surestiment la fraîcheur nécessaire de leurs données.

Comment les données web scraped s'intègrent-elles dans un pipeline de données ?

Les données scraped entrent à l'étape d'ingestion, au même endroit que les bases de données et les API, mais c'est la source la plus hostile sur le plan opérationnel car le web ouvert se défend contre les bots et change son balisage sans préavis. Le modèle fiable est de traiter la collecte comme un service géré qui fournit à votre pipeline du HTML ou du JSON propre, puis d'exécuter des étapes normales de transformation, stockage et service sur celui-ci. Cela contient l'instabilité du web à une seule étape.

Comment Crawlbase fonctionne-t-il comme couche d'ingestion ?

La Crawling API prend une URL plus un token JavaScript optionnel, rend la page dans un vrai navigateur derrière une IP résidentielle rotative, et renvoie du HTML terminé ou du JSON parsé en un seul appel, de sorte que même les pages rendues côté client reviennent remplies. Pour une collecte large ou planifiée, le Crawler asynchrone met en file d'attente des lots d'URL, les crawle en arrière-plan et délivre les résultats à un endpoint de callback, avec Storage disponible pour mettre en zone de transit les réponses brutes afin que la collecte et le parsing restent découplés.

Pourquoi ai-je besoin d'une surveillance au-delà de vérifier que les tâches se sont exécutées ?

Parce qu'une tâche peut se terminer avec succès et produire quand même des données incorrectes. La surveillance opérationnelle vous indique si la tâche s'est exécutée et quand ; la surveillance de la qualité des données vous indique si la sortie est correcte. Imposez des barrières au pipeline sur des assertions telles que le nombre de lignes attendu, les colonnes clés non nulles, les formats valides et le volume stable, afin qu'il s'arrête et alerte sur les mauvaises données au lieu de les charger dans chaque rapport en aval. Pour les sources scraped, une baisse de volume est souvent le premier signe que le collecteur a été bloqué.

Commencer à construire

Crawlez n'importe quel site à grande échelle, sans combattre l'infrastructure.

Crawlbase gère les proxies, les empreintes et les CAPTCHA afin que votre équipe livre des pipelines de données au lieu de maintenir la plomberie de crawl. 1 000 requêtes gratuites, sans carte requise.

En libre-service · Sans appel commercial requis · Volumes de crawl entreprise disponibles