timlid.ru | блог про Data Engineering Заметки, инструменты и кейсы из реальной работы

Почему внешние источники ломаются и как это пережить архитектурно

Внешние данные и OSINT-продукты Опубликовано: 30.01.2026 17:37 #29

Внешние данные — это всегда нестабильность. Новости, цены, отзывы, каталоги, любые публичные источники. Даже если сегодня всё работает, завтра может сломаться без предупреждения, потому что поведение внешних источников может измениться.

Во-первых, меняется структура страниц и API.

Авторы переименовали поле, поменяли HTML, добавили защиту — и парсер начинает отдавать пустоту или мусор, формально оставаясь “успешным”.

Во-вторых, нестабильность по доступности.

Таймауты, 403, капчи, лимиты по запросам. Иногда это просто пиковая нагрузка на стороне источника, но пайплайну от этого не легче.

В-третьих, данные приходят неравномерно.

Сегодня 10 000 записей, завтра 500. Или наоборот — может быть внезапный всплеск по объему данных, к которому система не готова.

В-четвёртых, шум и дубли. Один и тот же объект приходит под разными ссылками, с разными заголовками и текстом, но по сути это одно и то же событие.

И наконец, могут меняться форматы. Дата может быть “2025-01-10”, “10 января 2025” или “сегодня”. Цена — числом или строкой в разных форматах.

Если не учитывать это в архитектуре, то об этом можно потом сильно пожалеть.

Что помогает принимать и обрабатывать внешние данные так, чтобы можно было спокойно жить и работать? Надо сохранять сырые данные как есть (raw), без попытки сразу привести всё к идеальному виду. Затем делать нормализацию отдельным шагом, чтобы можно было безопасно пересчитать данные при изменениях. И лучше бы иметь карантин для проблемных записей, чтобы они не ломали весь прогон. И неплохо бы версионировать схемы, особенно в нормализованном слое, а также держать дедуп и ключи отдельно от текста, чтобы одинаковые сущности не разъезжались.

Внешние данные лучше заранее воспринимать так, что они могут и будут ломаться. И вопрос не в том, сломается ли источник, а в том, как быстро система восстановится и что при этом потеряет.