Popularne systemy strumieniowe

Koncepcje strumieniowania danych

Mike Metzger

Data engineer

Narzędzia strumieniowe

  • Dostępne różne narzędzia w zależności od potrzeb
  • Pozwala wybrać najlepsze narzędzie do zadania
  • Popularne systemy to:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

Koncepcje strumieniowania danych

Celery

  • Rozproszony kolejka zadań / FIFO
  • Używany głównie jako kolejka zadań
  • Często stosowany do zadań asynchronicznych
    • Wysyłanie e-maili z resetem hasła
    • Realizacja zamówień cyfrowych
    • Zmiana rozmiaru obrazów
  • Umożliwia przetwarzanie w czasie rzeczywistym dużej liczby komunikatów
  • Obsługuje zarządzanie i skalowanie (wertykalne i horyzontalne)

Projekt Celery

Koncepcje strumieniowania danych

Apache Kafka

  • Rozproszony system strumieniowania zdarzeń
  • Przesyła zdarzenia między producentami a konsumentami
    • Producenci tworzą zdarzenia w temacie
    • Tematy to wiadomości o określonej formie
    • Konsumenci odbierają nowe zdarzenia
  • Różni konsumenci mogą obsługiwać zdarzenia według potrzeb (logowanie, transformacje, przekazywanie itp.)
  • Obsługuje przechowywanie zdarzeń zgodnie z konfiguracją
  • Bardzo wydajny, ale konfiguracja może być złożona

Apache Kafka

Koncepcje strumieniowania danych

Zastosowania Kafki

  • Najlepszy do przesyłania danych między wieloma systemami
    • Jedno źródło prawdy
    • Przechwytywanie zmian danych
    • Kopie zapasowe danych
    • Migracje systemów danych
Koncepcje strumieniowania danych

Spark Streaming

  • Część Apache Spark
  • Zaprojektowany do przetwarzania danych strumieniowych
  • Rozszerza możliwości Spark o przetwarzanie w Scali, Pythonie, SQL i innych
  • Przydatny przy dużych wolumenach danych i w zastosowaniach uczenia maszynowego
  • Umożliwia łatwe przejście z przetwarzania wsadowego na strumieniowe
  • Nie służy do przechowywania zdarzeń – skupia się na ich przetwarzaniu lub modyfikacji

Apache Spark

Koncepcje strumieniowania danych

Ćwiczmy!

Koncepcje strumieniowania danych

Preparing Video For Download...