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

Change Data Capture

Захват изменений (CDC)

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

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

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

  • Даёт полную историю изменений: важнейшее условие корректности признаков «на момент времени».
  • Debezium и аналоги превращают журнал транзакций в поток событий.
  • Полная выгрузка теряет промежуточные состояния — по ней невозможно восстановить прошлое.

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

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

1

Как это работает

Читаем журнал транзакций, а не саму таблицу.

База данных уже ведёт журнал всех изменений (WAL в PostgreSQL, binlog в MySQL). CDC-коннектор читает его и превращает в поток событий insert / update / delete — без нагрузки на саму базу тяжёлыми запросами.

  • Даёт полную историю: видно каждое промежуточное состояние строки.
  • Не пропускает изменения, случившиеся между двумя выгрузками.
  • Требует аккуратности со snapshot: первичная выгрузка + продолжение с нужной позиции журнала.
2

Медленно меняющиеся измерения

Как хранить историю атрибутов.

ТипЧто делаетГодится для ML
SCD 1перезаписывает значениенет — история теряется
SCD 2новая строка с valid_from / valid_toда, это стандарт
SCD 4отдельная таблица историида
На практике

Без SCD 2 признак «сегмент клиента» для события годичной давности возьмётся из текущего состояния — это классическая утечка на уровне хранилища.

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

Надёжность данных · Признаки в реальном времени

Feature Stores98%

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

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

Data Quality85%

Качество данных · Инженерия данных

Автоматические проверки, которые ловят поломку источника раньше, чем она попадёт в модель.

Data Contracts85%

Контракты данных · Инженерия данных

Явная договорённость между источником и потребителем: какие поля, каких типов и с какими гарантиями.

Idempotency & Exactly-once85%

Идемпотентность и гарантии доставки · Инженерия данных

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

Data leakage85%

Утечка данных · Данные

Ситуация, когда в обучении присутствует информация, недоступная в момент реального предсказания. Главная причина «слишком хороших» метрик.

Data leakage85%

Утечка данных · Практика ML

Самая дорогая ошибка в ML: модель отлично работает офлайн и разваливается в проде.

Data preprocessing85%

Предобработка данных · Данные

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

Online and Offline Features85%

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

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

Batch and Streaming85%

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

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

Feature engineering85%

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

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

Feature engineering85%

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

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