Будут ли данные стандартизироваться и приводиться к единому виду перед загрузкой в хранилище
Что проверяют
Как вы проектируете путь данных от источника до витрины: где чистить, где хранить сырое и как ловить мусор. Следом часто спрашивают, что будет с записями, которые не прошли проверку, и где делать масштабирование признаков для модели.
Как отвечать
Ответ «да, будут» верный, но важнее, где именно. Современная схема это ELT: сырые данные сначала кладутся как есть, а к единому виду приводятся уже внутри хранилища, по слоям.
- сырой слой (raw, bronze, STG): копия источника без правок, с датой загрузки и именем источника. Нужен, чтобы пересчитать всё после исправления логики;
- очищенный слой (silver, ODS/DDS): единые типы, даты в UTC, одна кодировка, единицы измерения и валюты, справочники кодов, дедупликация, понятные правила для NULL;
- витрины (gold, marts): агрегаты и признаки под конкретных потребителей, отчёты и обучение моделей.
Инструменты назовите по ролям: трансформации в dbt или Spark, оркестрация в Airflow, проверки качества через тесты dbt (unique, not_null, accepted_values, relationships), Great Expectations или Soda. Для потоков из Kafka схему фиксирует Schema Registry с Avro или Protobuf, и несовместимое изменение не пройдёт на входе.
Для ML-позиции добавьте разграничение. Приведение форматов делается в хранилище один раз для всех потребителей. А стандартизация признаков, например StandardScaler, относится к пайплайну модели: её параметры считаются только на обучающей выборке и сохраняются вместе с моделью.
Где спотыкаются
Чистят данные ещё до загрузки и выбрасывают оригинал. Когда правило очистки окажется ошибочным, пересчитать будет не из чего.
Смешивают два смысла слова и предлагают нормировать признаки прямо в хранилище по всей таблице. Среднее и дисперсия, посчитанные вместе с тестовой частью, дают утечку данных, а новые данные потом придётся масштабировать другими параметрами.
Молча отбрасывают записи, которые не прошли проверку. Их нужно складывать в карантинную таблицу с причиной отказа и следить за её размером: всплеск там обычно первым сообщает, что источник поменял формат.