Qu'est-ce que l'ingestion batch en data engineering ?

L'ingestion batch consiste a traiter des donnees par lots a intervalles reguliers, contrairement au streaming temps reel. C'est le pattern dominant des pipelines de donnees modernes.

Partager la définition

L'ingestion batch est un mode de traitement de donnees ou les donnees sont collectees, puis traitees en un seul bloc (un "lot" ou "batch") a intervalles definis. Contrairement au streaming qui traite les donnees en continu au fil de leur arrivee, le batch execute un job avec un debut et une fin, typiquement programme a heure fixe via un orchestrateur.

Comment fonctionne l'ingestion batch

Le principe est simple : un job se declenche (par un scheduler ou un evenement), extrait les donnees d'une ou plusieurs sources, les transforme, puis les charge dans un systeme cible. C'est le fameux pattern ETL (Extract, Transform, Load) ou sa variante ELT (Extract, Load, Transform) qui a gagne en popularite avec les entrepots de donnees cloud.

Entre deux executions, le pipeline est inactif. Cette caracteristique a un avantage direct : on peut deployer une nouvelle version du code, la tester, et la valider avant la prochaine execution. En streaming, toute mise a jour necessite un redeploiement a chaud sans interruption de service, ce qui complexifie les operations.

Differents patterns d'execution

Le batch recouvre plusieurs strategies selon le volume et la fraicheur attendue :

  • Full load : on recharge l'integralite des donnees a chaque execution. Simple mais couteux en ressources sur de gros volumes.
  • Incremental load : seules les donnees nouvelles ou modifiees depuis la derniere execution sont traitees. Plus efficace, mais necessite un mecanisme de detection des changements (timestamp, CDC).
  • Micro-batch : un compromis entre batch et streaming, avec des executions tres frequentes (toutes les 5 a 15 minutes). Apache Spark Structured Streaming fonctionne sur ce principe.

Outils et technologies

L'ecosysteme batch est riche et mature. Cote orchestration, Apache Airflow reste la reference open source pour planifier et monitorer des pipelines complexes avec gestion des dependances entre taches. Dagster et Prefect sont des alternatives plus recentes avec une meilleure experience developpeur.

Pour la transformation, dbt (data build tool) a transforme les pratiques en permettant aux Analytics Engineers d'ecrire des transformations en SQL versionne, teste et documente directement dans l'entrepot de donnees. Cote traitement distribue, Apache Spark reste incontournable pour les volumes massifs, capable de traiter des teraoctets de donnees en parallele sur un cluster.

Les services cloud managees comme AWS Glue, Google Cloud Dataflow ou Azure Data Factory simplifient le deploiement en eliminant la gestion d'infrastructure.

Pourquoi le batch reste dominant

Malgre l'attrait du temps reel, le batch couvre la grande majorite des besoins en entreprise. Les rapports financiers, les tableaux de bord analytiques, l'entrainement de modeles de machine learning, les synchronisations entre systemes : tous ces cas d'usage n'exigent pas une latence inferieure a la minute.

Le batch est aussi plus simple a debugger, a tester et a maintenir. Les Data Engineers peuvent inspecter les donnees a chaque etape, rejouer un job en cas d'erreur, et tracer l'ensemble du parcours de la donnee grace au Data Lineage.

Cas d'usage concrets

  • Reporting quotidien : alimentation d'un entrepot de donnees chaque nuit pour des dashboards consultes le matin.
  • Entrainement de modeles ML : extraction de features depuis une Data Platform, calcul de jeux d'entrainement, stockage dans un Feature Store.
  • Migration et consolidation : chargement de donnees depuis des systemes legacy vers une Modern Data Stack cloud.
  • Conformite reglementaire : generation de rapports periodiques pour la Data Governance (RGPD, audits).

Batch vs streaming : comment choisir

Le choix depend de la latence acceptable. Si les donnees doivent etre disponibles en moins de quelques secondes (detection de fraude, alertes temps reel), le streaming s'impose. Pour tout le reste, le batch offre un meilleur rapport simplicite/cout. De nombreuses architectures combinent les deux : un pipeline batch pour l'historique et les analyses lourdes, un flux streaming pour les alertes et les actions immediates. C'est ce qu'on appelle l'architecture Lambda.

Fait intéressant

Un pipeline batch a un temps d'execution fini, ce qui permet de deployer et tester de nouvelles versions entre deux executions. En streaming, le systeme ne s'arrete jamais, ce qui rend chaque mise a jour plus risquee et complexe. C'est une des raisons pour lesquelles la plupart des Data Engineers recommandent de commencer par du batch et de n'introduire le streaming que lorsque le besoin en latence est explicitement demontre.

Pour aller plus loin

Ces formations pourraient aussi vous intéresser

Prêt à accélérer votre Transformation ?

Nos experts vous accompagnent à chaque étape
de votre parcours Data & IA. Discutons ensemble de vos enjeux et objectifs.