Systèmes de streaming populaires
Concepts de streaming
Mike Metzger
Data engineer
Outils de streaming
- Divers outils disponibles selon les besoins
- Permet de choisir l'outil le plus adapté
- Systèmes courants :
- Celery
- Kafka
- Spark Streaming
Celery
- File de tâches distribuée / FIFO
- Utilisée surtout comme file de travaux ou de tâches
- Souvent pour des tâches asynchrones
- Envoi d'e-mails de réinitialisation de mot de passe
- Exécution de commandes numériques
- Redimensionnement d'images
- Permet le traitement en temps réel d'un grand volume de messages
- Offre des fonctions de gestion et de mise à l'échelle (verticale et horizontale)
Apache Kafka
- Système de diffusion d'événements distribué
- Conçu pour envoyer des événements entre producteurs et consommateurs
- Les producteurs créent des événements sur un topic
- Les topics sont des messages d'un format défini
- Les consommateurs reçoivent les nouveaux événements
- Différents consommateurs peuvent traiter les événements selon le besoin (journalisation, transformations, relais, etc.)
- Gère le stockage des événements selon la configuration
- Très puissant, mais la mise en place peut être délicate

Cas d'usage de Kafka
- Idéal pour faire transiter des données entre plusieurs systèmes
- Source unique de vérité
- Capture des changements de données
- Sauvegardes de données
- Migrations de systèmes de données
Spark Streaming
- Fait partie d'Apache Spark
- Conçu pour traiter des données en streaming
- S'appuie sur Spark pour traiter en Scala, Python, SQL, etc.
- Utile pour de grands volumes et des scénarios de machine learning
- Permet de passer du batch au stream assez facilement
- Non conçu pour stocker ou journaliser les événements, mais pour traiter ou modifier les données
Passons à la pratique !
Concepts de streaming
Preparing Video For Download...