Škálování dávkového zpracování

Koncepty streamingu

Mike Metzger

Data Engineer

Co je škálování?

  • Zlepšení výkonu
    • Rychlejší zpracování
      • Stejné množství dat zpracováno za kratší dobu
    • Zpracování většího množství dat
      • Více dat zpracováno za stejnou dobu
Koncepty streamingu

Vertikální škálování

  • Lepší hardware
    • Rychlejší CPU
    • Rychlejší IO
    • Více paměti
  • Obvykle nejjednodušší druh škálování
    • Nejnižší složitost
    • Jen zřídka vyžaduje změnu programů či algoritmů

CPU

Paměť

1 Images courtesy https://unsplash.com/@jeremy0
Koncepty streamingu

Nevýhody vertikálního škálování

  • Ze své podstaty omezené
  • Může být nákladné / nízká návratnost
  • Zlepšení v oboru nejsou zaručena
Koncepty streamingu

Horizontální škálování

  • Rozdělení úlohy na více částí
    • Více počítačů
    • Případně více procesorů
  • Nejlépe funguje u "embarassingly parallel" úloh
    • Úlohy, které lze snadno rozdělit mezi pracovní uzly
  • Může být velmi nákladově efektivní
  • U určitých procesů umožňuje téměř lineární zlepšení výkonu

CPU1

CPU2

CPU3

CPU4

Koncepty streamingu

Nevýhody horizontálního škálování

  • Složitost
    • Vyžaduje framework pro zpracování (např. Apache Spark nebo Dask)
    • Vyžaduje rozsáhlejší síťovou infrastrukturu
  • Průběžná správa
  • Může být nákladné v závislosti na požadavcích
  • "Neparalelní" úlohy
Koncepty streamingu

Pojďme si procvičit!

Koncepty streamingu

Preparing Video For Download...