Масштабирование пакетной обработки

Концепции потоковой обработки

Mike Metzger

Data Engineer

Что такое масштабирование?

  • Повышение производительности
    • Ускорение обработки
      • Меньше времени на тот же объём данных
    • Обработка большего объёма данных
      • Больше данных за то же время
Концепции потоковой обработки

Вертикальное масштабирование

  • Улучшение оборудования
    • Более быстрый CPU
    • Более быстрый IO
    • Больше памяти
  • Как правило, наиболее простой способ масштабирования
    • Минимальная сложность
    • Редко требует изменения программ или алгоритмов

CPU

Память

1 Изображения предоставлены https://unsplash.com/@jeremy0
Концепции потоковой обработки

Недостатки вертикального масштабирования

  • Имеет принципиальные ограничения
  • Может быть дорогостоящим / с низкой отдачей
  • Улучшения со стороны индустрии не гарантированы
Концепции потоковой обработки

Горизонтальное масштабирование

  • Разбиение задачи на несколько частей
    • Больше компьютеров
    • Или больше CPU
  • Лучше всего подходит для «легко распараллеливаемых» задач
    • Задач, которые легко распределить между исполнителями
  • Может быть очень экономичным
  • Для ряда процессов даёт почти линейный прирост производительности

CPU1

CPU2

CPU3

CPU4

Концепции потоковой обработки

Недостатки горизонтального масштабирования

  • Сложность
    • Требует фреймворка обработки (например, Apache Spark или Dask)
    • Требует развитой сетевой инфраструктуры
  • Постоянное управление
  • Может быть дорогостоящим в зависимости от требований
  • «Непараллельные» задачи
Концепции потоковой обработки

Давайте потренируемся!

Концепции потоковой обработки

Preparing Video For Download...