Types de traitements
Caractéristique d’un traitement
Un traitement de données Big Data est caractérisé par :
- son débit, à maximiser : quantité de données pouvant être traitée par seconde ;
- sa latence, à minimiser : durée entre le début et la fin d’un traitement.
Traitement par lot
Les données du Big Data peuvent être accumulées, puis traitées par lot (batch processing), en une seule fois. Les traitements par lot ont un débit très élevé et une mauvaise latence.
Exemple : MapReduce.
Traitement par flux
Les données peuvent aussi être traitées en temps-réel, par traitement par flux (streaming processing). Ces traitements ont une faible latence et un débit plus faible que les traitements par lot. Ils ne sont pas utilisables si une vue d’ensemble sur les données est nécessaire.
Exemples : Spark Streaming, Apache Storm.
Amélioration des traitements
Ingestion de données
Si le débit d’un flux de données est supérieur au début du flux de traitement des données, alors des données sont perdues. L’ingestion de données (data ingestion) résout ce problème, en stockant temporairement les données dans une file d’attente. L'ingestion est assurée par un système distribué.
Exemple : Kafka.
Micro-batching
Le traitement par micro-lot (micro-batching) est une stratégie intermédiaire entre traitement par lot et par flux. Les données arrivant par un flux sont placées dans une file d’attente. La file, de petite dimension, est souvent vidée pour traitement, et le traitement s’apparente à un traitement par lot, mais sur une quantité de données raisonnable.
Exemple : Spark.
Architectures
Les technologies du Big Data sont articulées au sein d’architectures Big Data.
Architecture Lambda
L’architecture Lambda permet les traitements par lot et par flux. La couche de service (serving layer) permet de mettre à disposition les résultats des traitements dans des bases NoSQL :
Architecture Kappa
L’architecture Kappa est une architecture simplifiée se concentrant sur les traitements par flux uniquement :