Sistemi di streaming popolari

Concetti di Streaming

Mike Metzger

Data engineer

Strumenti di streaming

  • Vari strumenti disponibili in base alle esigenze
  • Permette di scegliere lo strumento migliore per il compito
  • Sistemi comuni includono:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

Concetti di Streaming

Celery

  • Coda di task distribuita / FIFO
  • Usata soprattutto come coda di job o task
  • Spesso per attività asincrone
    • Invio email di reset password
    • Evasione ordini digitali
    • Ridimensionamento immagini
  • Consente elaborazione in tempo reale di molti messaggi
  • Offre funzioni di gestione e scalabilità (verticale e orizzontale)

Progetto Celery

Concetti di Streaming

Apache Kafka

  • Sistema di event streaming distribuito
  • Progettato per inviare eventi tra producer e consumer
    • I producer creano eventi su un topic
    • I topic sono in pratica messaggi con un formato definito
    • I consumer ricevono i nuovi eventi
  • Consumer diversi possono gestire gli eventi secondo necessità (logging, trasformazioni, relay, ecc.)
  • Gestisce la memorizzazione degli eventi come previsto
  • Estremamente potente, ma non banale da configurare

Apache Kafka

Concetti di Streaming

Applicazioni Kafka

  • Ottimo per scambiare dati tra più sistemi
    • Unica fonte di verità
    • Change data capture
    • Backup dei dati
    • Migrazioni dei sistemi dati
Concetti di Streaming

Spark Streaming

  • Parte di Apache Spark
  • Progettato per elaborare dati in streaming
  • Sfrutta Spark per elaborare dati in Scala, Python, SQL, ecc.
  • Utile per grandi volumi e per machine learning
  • Può passare dal batch allo stream con facilità
  • Non pensato per archiviare o registrare eventi, ma per elaborare o modificare i dati

Apache Spark

Concetti di Streaming

Passiamo alla pratica!

Concetti di Streaming

Preparing Video For Download...