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

Kafka

Kafka

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

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

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

  • Партиции задают параллелизм; порядок гарантирован только внутри партиции.
  • Consumer group распределяет партиции между потребителями и отслеживает смещения.
  • Retention позволяет переиграть историю событий заново — ценное свойство для ML.

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

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

1

Партиции и порядок

Ключевое проектное решение.

  • Порядок гарантирован только внутри партиции — выбирайте ключ так, чтобы связанные события шли в одну.
  • Число партиций задаёт максимальный параллелизм потребителей; уменьшить его позже нельзя.
  • Перекос ключей приводит к перегруженной партиции и отставанию (lag) только по ней.
2

Потребители и смещения

Как не потерять и не задвоить события.

Потребитель хранит смещение (offset) — позицию в журнале. Коммит смещения до обработки даёт потерю при сбое, после обработки — дубликаты. Отсюда снова требование идемпотентности.

  • Мониторьте consumer lag: это главный индикатор здоровья потока.
  • Retention позволяет переиграть историю — ценно при исправлении логики обработки.
  • Compacted-топики хранят последнее значение по ключу и работают как таблица состояния.

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

Платформа данных

Warehouse, Lake, Lakehouse80%

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

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

File Formats80%

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

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

Partitioning80%

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

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

Analytical SQL80%

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

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

ETL vs ELT80%

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

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

Batch and Streaming80%

Батч и стриминг · Инженерия данных

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

Orchestration80%

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

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

Spark80%

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

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

ML Pipelines80%

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

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

Data Versioning80%

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

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