Populära streamingsystem

Streamingkoncept

Mike Metzger

Data engineer

Streamingverktyg

  • Olika verktyg beroende på behov
  • Gör det möjligt att välja rätt verktyg för jobbet
  • Vanliga system inkluderar:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

Streamingkoncept

Celery

  • Distribuerad uppgiftskö / FIFO
  • Används främst som en jobb- eller uppgiftskö
  • Vanlig för asynkrona uppgifter
    • Skicka e-post för lösenordsåterställning
    • Hantera digitala beställningar
    • Ändra bildstorlekar
  • Möjliggör realtidsbearbetning av stora mängder meddelanden
  • Har funktioner för hantering och skalning (vertikalt & horisontellt)

Celery project

Streamingkoncept

Apache Kafka

  • Distribuerat händelsestreamingsystem
  • Utformat för att skicka händelser mellan producenter och konsumenter
    • Producenter skapar händelser på ett ämne
    • Ämnen är i grunden meddelanden av en bestämd form
    • Konsumenter tar emot nya händelser
  • Olika konsumenter kan hantera händelser efter behov (loggning, transformationer, vidarebefordran m.m.)
  • Hanterar lagring av händelser enligt specifikation
  • Mycket kraftfullt, men kan vara svårt att konfigurera

Apache Kafka

Streamingkoncept

Kafka-tillämpningar

  • Passar bäst för dataöverföring mellan flera system
    • Enda källan till sanning
    • Insamling av förändrad data
    • Säkerhetskopior av data
    • Migrering av datasystem
Streamingkoncept

Spark Streaming

  • Del av Apache Spark
  • Utformat för att bearbeta strömmande data
  • Bygger vidare på Sparks möjligheter att bearbeta data i Scala, Python, SQL m.m.
  • Användbart för stora datamängder och i maskininlärningsscenarier
  • Kan relativt enkelt växla från batch- till strömbearbetning
  • Inte utformat för att lagra eller logga händelser – fokus är att bearbeta eller transformera data

Apache Spark

Streamingkoncept

Nu kör vi en övning!

Streamingkoncept

Preparing Video For Download...