Чему вы научитесь
- Понимать архитектуру Structured Streaming: источники, приёмники, триггеры, StateStore, checkpoint — и как они взаимодействуют под капотом
- Читать данные из Kafka, файлов, Rate Source и создавать собственные Source через V2 API
- Писать результаты стриминга в Kafka, Delta Lake, Parquet и внешние системы через ForeachBatch/Foreach
- Работать с event-time: tumbling, sliding и session windows, watermarks, обработка поздних данных
- Выполнять stream-static и stream-stream JOIN с event-time constraints
- Управлять состоянием: mapGroupsWithState, flatMapGroupsWithState, конечные автоматы, RocksDB StateStore
- Настраивать checkpointing для exactly-once гарантий и восстановления после сбоев
- Мониторить потоковые приложения: StreamingQueryListener, Spark UI, интеграция с Prometheus/Grafana
- Оптимизировать производительность: параллелизм, memory management, GC tuning, настройка Kafka source
- Тестировать потоковые приложения: MemoryStream, StreamTest, TestContainers + Kafka
- Записывать данные стримингом в ClickHouse восемью различными методами и выбирать оптимальный под задачу
- Проектировать production-ready потоковые пайплайны: graceful shutdown, dead letter queue, schema registry, multi-query execution
О курсе
Исчерпывающий курс по Apache Spark Structured Streaming на Scala. Sources, Sinks, Triggers, Windowing, State Management, Checkpointing, Joins, ClickHouse интеграция, Production паттерны. 16 модулей.
Для кого этот курс
Data-инженеры, которые строят или планируют строить потоковые пайплайны на Apache Spark
Backend-разработчики на Scala/Java, переходящие в область потоковой обработки данных
Разработчики, уже работающие с Spark Batch, которые хотят освоить Structured Streaming
Инженеры данных, которым нужно интегрировать Spark Streaming с ClickHouse в production
Архитекторы данных, выбирающие между Spark Structured Streaming, Flink и Kafka Streams
Специалисты, готовящиеся к собеседованиям на позиции Senior Data Engineer / Streaming Engineer
Начальные требования
- Уверенное владение языком Scala (синтаксис, коллекции, case-классы, pattern matching, for-comprehension, Option/Either)
- Опыт работы с Apache Spark в batch-режиме (SparkSession, DataFrame API, чтение/запись данных, базовые трансформации)
- Базовое понимание Apache Kafka (топики, партиции, offsets, producer/consumer) — желательно, но не обязательно
- Знакомство с командной строкой Linux и sbt Знание Structured Streaming НЕ требуется — курс начинает с основ потоковой обработки
Преподаватели курса
Как проходит обучение
- Курс состоит из 16 модулей, каждый включает 4–6 крупных шагов. Теоретические шаги — это полноценные статьи на тысячи слов, которые читаются как главы технической книги: с архитектурными схемами, разбором внутреннего устройства и примерами из production.
- Каждый шаг с кодом содержит полноценные Scala-приложения — от build.sbt и import-ов до graceful shutdown — которые можно скопировать и запустить в IDE. Код снабжён подробными комментариями, объясняющими не только «что делает», но и «зачем именно так».
- Каждый модуль завершается тестами (quiz) на глубокое понимание архитектуры и практическим заданием с бизнес-контекстом. Задания моделируют реальные задачи: построить pipeline обработки IoT-данных, реализовать real-time аналитику, настроить запись в ClickHouse с мониторингом и retry.
- Рекомендуется проходить модули последовательно и параллельно запускать примеры на локальном Spark-кластере или в Docker (инструкция по настройке — в первом модуле).
Что вы получите
- Глубокое понимание архитектуры Structured Streaming — не только API, но и внутреннее устройство: micro-batch цикл, StateStore, checkpoint, offset management
- Навык проектирования отказоустойчивых потоковых пайплайнов с exactly-once гарантиями
- 120+ полноценных примеров кода на Scala, готовых к использованию в production
- Полный разбор 8 методов записи в ClickHouse — с кодом, сравнительной таблицей и рекомендациями по выбору
- Умение мониторить и оптимизировать потоковые приложения: от StreamingQueryListener до Prometheus/Grafana дашбордов
- Навык тестирования streaming-логики: unit-тесты с MemoryStream, интеграционные тесты с TestContainers
- Понимание интеграции с Delta Lake, Iceberg и Hudi для построения Lakehouse-архитектуры
- Готовность к production: graceful shutdown, dead letter queue, schema evolution, backpressure handling, multi-query execution
- Готовность к собеседованиям на позиции Data Engineer / Streaming Engineer уровня middle и senior