Популярные системы потоковой обработки

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

Mike Metzger

Data engineer

Инструменты потоковой обработки

  • Широкий выбор инструментов в зависимости от задач
  • Позволяет выбрать оптимальный инструмент
  • Распространённые системы:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

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

Celery

  • Распределённая очередь задач / FIFO
  • Используется прежде всего как очередь задач
  • Часто применяется для асинхронных задач:
    • Отправка писем для сброса пароля
    • Выполнение цифровых заказов
    • Изменение размера изображений
  • Поддерживает обработку в реальном времени большого объёма сообщений
  • Обеспечивает управление и масштабирование (вертикальное и горизонтальное)

Проект Celery

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

Apache Kafka

  • Распределённая система потоковой передачи событий
  • Предназначена для передачи событий между производителями и потребителями
    • Производители создают события по определённой теме
    • Темы — это фактически сообщения заданного формата
    • Потребители получают новые события
  • Разные потребители могут обрабатывать события по-своему (логирование, преобразование, ретрансляция и т. д.)
  • Управляет хранением событий согласно настройкам
  • Очень мощный инструмент, но может быть сложным в настройке

Apache Kafka

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

Применение Kafka

  • Оптимален для передачи данных между несколькими системами
    • Единый источник истины
    • Захват изменений данных
    • Резервное копирование данных
    • Миграция систем данных
Концепции потоковой обработки

Spark Streaming

  • Входит в состав Apache Spark
  • Предназначен для обработки потоковых данных
  • Расширяет возможности Spark для обработки данных на Scala, Python, SQL и других языках
  • Эффективен при обработке больших объёмов данных и в задачах машинного обучения
  • Позволяет относительно легко переключаться между пакетной и потоковой обработкой
  • Не предназначен для хранения или логирования событий — его цель обработка и преобразование данных

Apache Spark

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

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

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

Preparing Video For Download...