Популярні системи стримінгу

Концепції стримінгу

Mike Metzger

Data engineer

Інструменти стримінгу

  • Різні інструменти залежно від потреб
  • Дозволяє обрати найкращий інструмент для задачі
  • Поширені системи:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

Концепції стримінгу

Celery

  • Розподілена черга завдань / FIFO
  • Використовується переважно як черга робіт чи завдань
  • Часто для асинхронних завдань
    • Надсилання листів для скидання пароля
    • Оброблення цифрових замовлень
    • Зміна розміру зображень
  • Дає оброблення в реальному часі великої кількості повідомлень
  • Має функції для керування та масштабування (вертикально й горизонтально)

Проєкт Celery

Концепції стримінгу

Apache Kafka

  • Розподілена система стримінгу подій
  • Створена для передавання подій між продюсерами та консьюмерами
    • Продюсери створюють події в топіку
    • Топіки — це по суті повідомлення заданого формату
    • Консьюмери отримують нові події
  • Різні консьюмери можуть обробляти події за потреби (логування, трансформації, ретрансляція тощо)
  • Забезпечує зберігання подій за специфікацією
  • Дуже потужна, але складна в налаштуванні

Apache Kafka

Концепції стримінгу

Застосування Kafka

  • Найкраще для передавання даних між кількома системами
    • Єдине джерело істини
    • Захоплення змін у даних (CDC)
    • Резервні копії даних
    • Міграції дата-систем
Концепції стримінгу

Spark Streaming

  • Частина Apache Spark
  • Призначена для оброблення стримінгових даних
  • Розширює можливості Spark для оброблення даних у Scala, Python, SQL тощо
  • Корисна для великих обсягів даних і для машинного навчання
  • Легко переходить від пакетної до потокової обробки
  • Не для зберігання чи логування подій, а головно для оброблення або зміни даних

Apache Spark

Концепції стримінгу

Давайте потренуємось!

Концепції стримінгу

Preparing Video For Download...