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

Apache Kafka

Spark Streaming

Concepts de 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)

Projet Celery

Concepts de streaming

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

Apache Kafka

Concepts de streaming

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
Concepts de streaming

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

Apache Spark

Concepts de streaming

Passons à la pratique !

Concepts de streaming

Preparing Video For Download...