Introduction
Le stream processing traite des flux de données en temps réel plutôt que des données statiques.
Cas d’usage : analyse IoT, détection de fraudes, monitoring applicatif, réseaux sociaux.
Différence avec batch processing : traitement continu vs traitement par lots périodiques.
Architecture d’un pipeline de streaming
Un pipeline de streaming se compose de 5 couches :
graph LR A[Data Sources] --> B[Ingestion Layer] B --> C[Processing Layer] C --> D[Storage Layer] D --> E[Output Layer]
Data Sources : capteurs IoT, logs applicatifs, feeds réseaux sociaux, applications.
Ingestion Layer : message brokers comme Kafka, Kinesis, Pub/Sub. Réception et mise en file d’attente.
Processing Layer : moteurs de traitement stream (Flink, Spark Streaming, Storm). Calculs en temps réel.
Storage Layer : bases de données et data lakes (Cassandra, Elastic, S3). Persistance des résultats.
Output Layer : dashboards, alertes, triggers ML. Visualisation et actions.
Exemple concret
Flotte de voitures connectées :
graph LR A[Voitures IoT] -->|telemetry| B[Kafka] B --> C[Flink] C -->|anomalies| D[Elastic] D --> E[Grafana]
Les voitures envoient des données télémétrie vers Kafka.
Flink calcule les anomalies de vitesse en temps réel.
Résultats stockés dans Elastic.
Alertes déclenchées dans Grafana pour supervision.
Motivations
Besoin de réponses instantanées : détecter une fraude avant validation transaction.
Volume de données croissant : traitement batch trop lent.
Cas où l’historique complet n’est pas nécessaire : température actuelle vs historique.