Skalowanie przetwarzania wsadowego

Koncepcje strumieniowania danych

Mike Metzger

Data Engineer

Czym jest skalowanie?

  • Poprawa wydajności
    • Szybsze przetwarzanie
      • Mniej czasu na przetworzenie tej samej ilości danych
    • Przetwarzanie większej ilości danych
      • Więcej danych przetworzonych w tym samym czasie
Koncepcje strumieniowania danych

Skalowanie pionowe

  • Lepszy sprzęt
    • Szybszy procesor
    • Szybsze we/wy
    • Więcej pamięci
  • Zazwyczaj najprostszy rodzaj skalowania
    • Najmniejsza złożoność
    • Rzadko wymaga zmian w programach lub algorytmach

Procesor

Pamięć

1 Images courtesy https://unsplash.com/@jeremy0
Koncepcje strumieniowania danych

Wady skalowania pionowego

  • Z natury ograniczone
  • Może być kosztowne / niski ROI
  • Postęp technologiczny nie jest gwarantowany
Koncepcje strumieniowania danych

Skalowanie poziome

  • Podział zadania na wiele części
    • Więcej komputerów
    • Lub więcej procesorów
  • Najlepsze dla zadań „embarrassingly parallel"
    • Zadania łatwe do podziału między węzły
  • Może być bardzo opłacalne
  • Dla niektórych procesów możliwa niemal liniowa poprawa wydajności

CPU1

CPU2

CPU3

CPU4

Koncepcje strumieniowania danych

Wady skalowania poziomego

  • Złożoność
    • Wymaga frameworka (np. Apache Spark lub Dask)
    • Wymaga rozbudowanej sieci
  • Bieżące zarządzanie
  • Może być kosztowne w zależności od wymagań
  • Zadania „nierównoległe"
Koncepcje strumieniowania danych

Czas na ćwiczenia!

Koncepcje strumieniowania danych

Preparing Video For Download...