# Data Engineering

> Применяйте при реализации или проверке корректности загрузки и преобразования данных; определяйте контракты источника и приёмника, обработку версий, идемпотентное воспроизведение, поздние данные, эволюцию схемы и перерасчёт истории.

- Skill: `fbakiyev/data-engineering` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fbakiyev/data-engineering`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fbakiyev/data-engineering/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: fbakiyev (https://skillmd.com/u/fbakiyev)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/fbakiyev/data-engineering

---


# Разработка конвейеров данных

## Контракт данных

- Определите авторитетный источник, версии источника и приёмника, гранулярность строки, бизнес-ключ, поле версии или порядка, время события, время поступления, владельца и требуемую свежесть.
- Изучите гарантии коннектора и приёмника в фактической конфигурации проекта. Отличайте подтверждённые гарантии от желаемого поведения; название режима во фреймворке не доказывает сквозную обработку ровно один раз.

## Ключевые решения

1. Определите логический диапазон входных данных и границу фиксации записи. Повтор после записи в приёмник, но до подтверждения обработки источнику, не должен дублировать результат; используйте стабильные ключи с обновлением по версии, атомарную замену раздела или другой доказанно идемпотентный способ.
2. Укажите, как поздние события, обновления и удаления меняют предыдущие результаты. Выбирайте временную границу по времени события и допустимое опоздание исходя из бизнес-требований; для записей за пределами окна предусмотрите явную сверку или карантин вместо молчаливой потери.
3. Рассматривайте эволюцию схемы как изменение контракта с потребителями: отличайте совместимые добавления от изменений типа, смысла, ключа и гранулярности. Проверяйте представительные старые и новые записи, включая отсутствующие поля, прежде чем менять правила контроля.
4. Ограничивайте перерасчёт истории неизменными диапазонами или снимками. Предотвращайте конфликтующие записи с текущей обработкой, сохраняйте более новые версии при воспроизведении старых данных и определяйте порядок перезапуска, сверки и восстановления.

## Результат и проверка

- Подготовьте конвейер или заключение по проверке с кратким контрактом: ключи, порядок версий, диапазоны источника, место назначения, владелец, свежесть и правила обработки сбоев. Используйте templates/data-contract.yaml, если шаблон доступен.
- Где это применимо, проверьте дубликат, версию, пришедшую не по порядку, позднюю запись и сбой между записью и подтверждением обработки. Проверяйте ожидаемые ключи, версии, суммы и число отклонённых записей, а не только успешное завершение задания.
- Укажите фактически проверенные данные и разделы; для эксплуатационных изменений опишите восстановление.

## Ограничения

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

