Инженерия данных

Batch and Streaming

Батч и стриминг

актуальноТекущий рабочий стандарт

Обработка по расписанию против непрерывной обработки событий. Разные задержки, разные гарантии, разная стоимость.

Ключевые тезисы

  • Батч проще, дешевле и достаточно для большинства ML-задач.
  • Стриминг нужен там, где решение принимается за секунды: антифрод, динамические цены.
  • Оконные агрегации в стриминге требуют явной работы с опоздавшими событиями (watermark).

Подробный разбор

2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Что выбрать

Задержка против сложности.

Требование к задержкеРешение
часыбатч по расписанию
минутымикробатч (каждые 5–15 минут)
секундыстриминг
миллисекундыонлайн-расчёт в самом сервисе
На практике

Стриминг дороже в разработке и эксплуатации в разы. Начинайте с батча и переходите к потоку только когда бизнес-требование к задержке доказано, а не предполагается.

2

Окна и опоздавшие события

Главная сложность потоковой обработки.

  • Event time против processing time: считать нужно по времени события, иначе агрегаты будут неверны.
  • Watermark задаёт, сколько ждать опоздавшие события, прежде чем закрыть окно.
  • Слишком короткий watermark теряет данные, слишком длинный увеличивает задержку и память состояния.
  • Типы окон: тумблинг (непересекающиеся), скользящее, сессионное.

Связанные темы

Платформа данных · Признаки в реальном времени

Online and Offline Features85%

Онлайн- и офлайн-признаки · Системный дизайн ML-сервисов

Часть признаков считается заранее, часть — в момент запроса. Расхождение между ними — главный источник инцидентов.

Feature Stores85%

Хранилища признаков · MLOps

Централизованное хранилище признаков, единое для обучения и онлайн-инференса.

Change Data Capture85%

Захват изменений (CDC) · Инженерия данных

Чтение журнала изменений базы вместо периодических полных выгрузок.

Feature engineering85%

Конструирование признаков · Данные

Создание признаков, в которых закономерность становится линейно отделимой или просто более заметной для модели.

Feature engineering85%

Работа с признаками · Практика ML

На табличных данных грамотные признаки дают больший прирост, чем смена модели.

Warehouse, Lake, Lakehouse80%

Хранилище, озеро, lakehouse · Инженерия данных

Три способа хранить аналитические данные: строгая схема, сырые файлы или гибрид с транзакциями поверх объектного хранилища.

File Formats80%

Форматы хранения · Инженерия данных

Колоночные форматы против строковых: почему Parquet почти всегда лучше CSV для аналитики.

Partitioning80%

Партиционирование · Инженерия данных

Разделение данных по ключу (обычно по дате), чтобы запрос читал минимум файлов.

Analytical SQL80%

Аналитический SQL · Инженерия данных

Оконные функции, агрегации и CTE — основной инструмент подготовки признаков на больших данных.

ETL vs ELT80%

ETL и ELT · Инженерия данных

Преобразовывать данные до загрузки или уже внутри хранилища — и почему индустрия сместилась ко второму.

Orchestration80%

Оркестрация пайплайнов · Инженерия данных

Планировщик, который знает зависимости между задачами, повторяет упавшие и не даёт запускать одно и то же дважды.

Spark80%

Spark · Инженерия данных

Распределённая обработка больших объёмов данных: тот случай, когда данные не помещаются на одну машину.

Kafka80%

Kafka · Инженерия данных

Распределённый журнал событий: основа потоковой архитектуры и источник данных для онлайн-признаков.

ML Pipelines80%

ML-пайплайны · MLOps

Оформление обучения как воспроизводимой последовательности шагов вместо разрозненных ноутбуков.

Data Versioning80%

Версионирование данных · MLOps

Данные меняются чаще кода — без их версий эксперимент не воспроизвести.