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

Idempotency & Exactly-once

Идемпотентность и гарантии доставки

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

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

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

  • At-least-once — стандартная гарантия брокеров: дубликаты будут, их нужно уметь схлопывать.
  • Идемпотентная запись по ключу (upsert) превращает at-least-once в фактический exactly-once.
  • Задвоенные события — частая причина «необъяснимого» роста признаков и утечек в обучении.

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

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

1

Гарантии доставки

Три уровня и что они значат на практике.

ГарантияЧто бываетЦена
at-most-onceданные теряютсяминимальная задержка
at-least-onceдубликатыстандарт брокеров
exactly-onceни потерь, ни дублейдороже, часто «эффективно exactly-once»

На практике exactly-once достигается сочетанием at-least-once доставки и идемпотентной записи по ключу: повторное событие просто перезаписывает ту же строку.

2

Дедупликация

Как схлопывать повторы.

-- оставляем последнюю версию каждого события
SELECT * FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY ingested_at DESC) AS rn
  FROM raw_events
) WHERE rn = 1
На практике

Дубликаты особенно опасны для ML: они меняют веса объектов при обучении и могут попасть одновременно в train и test, создавая утечку.

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

Надёжность данных

Data Quality85%

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

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

Data Contracts85%

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

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

Change Data Capture85%

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

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

Feature Stores85%

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

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

Data leakage85%

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

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

Data leakage85%

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

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

Data preprocessing85%

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

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