Streaming Processing сложнее, чем Batch Processing по следующим причинам:
- Нет момента «окончания работы» приложения, напротив, приложение должно работать всегда: 24/7
- Важны не только объёмы данных, но и временные характеристики всех компонентов системы
- Балансировка нагрузки по нодам кластера может изменяться по ходу работы
- Форматы данных неизбежно меняются с течением времени, но приложение должно работать непрерывно и обеспечивать совместимость для потребителей данных
В этом семинаре мы начнём с основ потоковой обработки данных. Мы разберём типичные области применения Streaming Processing. Затем мы познакомимся с Apache Spark Structured Streaming и реализуем несколько сценариев для онлайн-магазина. Мы уделим внимание следующим аспектам:
- агрегация по временным окнам
- понятие времени и watermark
- синхронизация потоков данных из нескольких источников
- интеграция со сторонними системами через Apache Kafka
- форматы данных
- восстановление после аварии
Тема 4. Data streaming concepts. Spark Structured Streaming API. Output modes. Kafka integration and message formats. Streaming word count
Тема 5. Time window aggregations. Timestamps and watermarks. Message deduplication. PracticeCount sold items in an online shop.
Тема 6. Streaming joins. Failures and recovery. Streaming sales statistics per country. Lab: Recovery from a checkpoint