Популярные системы потоковой обработки
Концепции потоковой обработки
Mike Metzger
Data engineer
Инструменты потоковой обработки
Широкий выбор инструментов
в зависимости от задач
Позволяет выбрать
оптимальный инструмент
Распространённые системы
:
Celery
Kafka
Spark Streaming
Celery
Распределённая
очередь задач /
FIFO
Используется прежде всего как очередь
задач
Часто применяется для
асинхронных задач
:
Отправка писем для сброса пароля
Выполнение цифровых заказов
Изменение размера изображений
Поддерживает
обработку в реальном времени
большого объёма сообщений
Обеспечивает
управление и масштабирование
(вертикальное и горизонтальное)
Apache Kafka
Распределённая
система потоковой передачи событий
Предназначена для передачи событий между
производителями
и
потребителями
Производители
создают события по определённой
теме
Темы
— это фактически
сообщения
заданного формата
Потребители
получают новые события
Разные потребители могут
обрабатывать события по-своему
(логирование, преобразование, ретрансляция и т. д.)
Управляет
хранением событий
согласно настройкам
Очень
мощный
инструмент, но может быть
сложным
в
настройке
Применение Kafka
Оптимален для
передачи данных между несколькими системами
Единый
источник истины
Захват
изменений данных
Резервное копирование
данных
Миграция
систем данных
Spark Streaming
Входит в состав
Apache Spark
Предназначен для обработки
потоковых
данных
Расширяет возможности Spark для обработки данных на
Scala, Python, SQL и других языках
Эффективен при обработке
больших объёмов
данных и в задачах
машинного обучения
Позволяет относительно легко
переключаться между пакетной и потоковой
обработкой
Не предназначен для хранения или логирования событий — его цель
обработка и преобразование
данных
Давайте потренируемся!
Концепции потоковой обработки
Preparing Video For Download...