Инженерия доверия
Воспроизводимый ETL: provenance, quality gate и честная ошибка
Какие следы нужны от источника до публичного агрегата, чтобы результат можно было проверить и исправить.
· 7 минут чтения · TechRole Index
Воспроизводимость начинается не с красивого dashboard, а с ответа на вопрос: из какой записи, каким правилом и в каком запуске появился показатель. Если эта цепочка потеряна, исправление превращается в ручное угадывание.
Идентичность источника и записи
Каждая вакансия получает source code и внешний identifier. Уникальность пары защищает от повторной вставки одной записи при пересечении поисковых запросов. Название сайта в тексте payload не заменяет проверяемый provider provenance.
Raw payload хранится по privacy allowlist: для аналитики нужны профессиональные поля, но не контакты и адреса. Оригинальный источник, query и run сохраняются отдельно от нормализованных значений.
Версия классификации
Профессия и seniority являются результатом классификации, поэтому рядом нужны classifier version и confidence. Объяснимые alias, regex и exclusion rules остаются основным механизмом; uncertain запись не должна автоматически получать уверенный slug.
Локальная модель может предложить ограниченный результат только после rules и schema validation. Её ответ имеет confidence cap и не получает права самостоятельно публиковать агрегат.
Транзакция и состояние запуска
Ingestion run фиксирует started_at, finished_at, число просмотренных и изменённых записей, ошибки и параметры. Незавершённый старый run нельзя оставлять вечным running: следующий запуск переводит его в failed с явной причиной прерывания.
Запись данных и итогового состояния должна быть согласована транзакционно. Частичная ошибка не должна выглядеть успешным полным обновлением.
Quality gate перед публикацией
До агрегата проверяются валюта, полнота вилки, tax basis, sample size и временное окно. Метрика публикуется только из совместимого слоя. Новая загрузка не обязана перезаписывать существующую витрину, если источник не даёт достаточной совместимости.
Честная ошибка включает безопасное описание причины и request/run ID, но не query с персональными значениями, email или полный payload. Наблюдаемость должна помогать найти этап, не создавая вторую утечку данных.
Что делает результат цитируемым
Публичный результат связывает каноническую сущность, период, n, методологию, источник и дату ingestion. Машиночитаемые JSON/CSV повторяют те же оговорки, что видимый HTML.
Если правило изменилось, новая classifier/scoring version позволяет объяснить расхождение. Старое число не переписывается задним числом без следа решения.
Контрольный список
- Сохранять source, external ID, query и ingestion run.
- Версионировать classifier и scoring rules.
- Не считать interrupted run успешным.
- Пропускать агрегат через compatibility и sample-size gates.
- Синхронизировать оговорки HTML, JSON, CSV и citation metadata.
Как сослаться на материал
TechRole Index. «Воспроизводимый ETL: provenance, quality gate и честная ошибка». 20 июля 2026 г.. https://win-702hpohbtiv.tail044b19.ts.net/insights/reproducible-etl-provenance