Files
data_engineer_test/docs/INTERVIEW.md
T
2026-11-13 22:02:30 +03:00

10 lines
2.4 KiB
Markdown

# Тезисы для собеседования
- Стандартная библиотека Python и SQLite позволяют проверить решение локально без установки пакетов и сервера. Для этой небольшой полной выгрузки это снижает сложность эксплуатации.
- Строка заказа имеет составной ключ. Сначала валидируем обязательные значения, даты и числа, затем различаем нормализованный дубль и конфликт ключа. Первая валидная строка побеждает; источник не дает надежной версии для выбора самой новой.
- Деньги переводим через Decimal в целые копейки. Суммы и произведения ограничены int64. Неоднозначные даты отклоняем вместо угадывания.
- Качество можно проверить построчно: каждый отказ имеет одну основную причину и номер CSV. Исправленные принятые строки учитываются отдельно; вход равен сумме принятых и отклоненных.
- Идемпотентность доказана сравнением логических данных двух запусков. Транзакционность проверена SQL-триггером, который прерывает запись: предыдущие факты и агрегаты сохраняются.
- SQL-аномалия означает аналитический сигнал; это не доказательство ошибки исходной строки. Порог выбран для демонстрации и требует проверки на реальной предметной области.
- Ограничения: синтетические данные, полная выгрузка в памяти, зависимость конфликтов от порядка, нет возвратов и общей транзакции между БД и файлами отчетов. Развитие: бизнес-версии, потоковая обработка, миграции и мониторинг.