Populární streamovací systémy

Koncepty streamingu

Mike Metzger

Data engineer

Streamovací nástroje

  • Různé nástroje podle potřeby
  • Umožňuje zvolit nejvhodnější nástroj pro daný účel
  • Běžné systémy zahrnují:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

Koncepty streamingu

Celery

  • Distribuovaná fronta úloh / FIFO
  • Používán primárně jako fronta úloh nebo jobů
  • Často využíván pro asynchronní úlohy
    • Odesílání e-mailů pro reset hesla
    • Zpracování digitálních objednávek
    • Změna velikosti obrázků
  • Umožňuje zpracování v reálném čase velkého množství zpráv
  • Poskytuje funkce pro správu a škálování (vertikální i horizontální)

Projekt Celery

Koncepty streamingu

Apache Kafka

  • Distribuovaný systém pro streamování událostí
  • Navržen pro předávání událostí mezi producenty a konzumenty
    • Producenti vytvářejí události k určitému tématu
    • Témata jsou v podstatě zprávy daného formátu
    • Konzumenti přijímají nové události
  • Různí konzumenti mohou zpracovávat události podle potřeby (logování, transformace, přeposílání atd.)
  • Zajišťuje ukládání událostí dle nastavení
  • Velmi výkonný, ale může být náročný na nastavení

Apache Kafka

Koncepty streamingu

Aplikace Kafka

  • Nejlépe vhodný pro předávání dat mezi více systémy
    • Jediný zdroj pravdy
    • Zachytávání změn dat
    • Zálohy dat
    • Migrace datových systémů
Koncepty streamingu

Spark Streaming

  • Součást Apache Spark
  • Navržen pro zpracování streamovaných dat
  • Rozšiřuje možnosti Sparku o zpracování dat v jazycích Scala, Python, SQL a dalších
  • Vhodný pro zpracování velkého množství dat a scénáře strojového učení
  • Umožňuje poměrně snadný přechod z dávkového na streamové zpracování
  • Není určen k ukládání nebo záznamu událostí, ale primárně k jejich zpracování nebo úpravě

Apache Spark

Koncepty streamingu

Pojďme procvičovat!

Koncepty streamingu

Preparing Video For Download...