22 lines
3.3 KiB
Markdown
22 lines
3.3 KiB
Markdown
# Отчет приемки
|
||
Приемка завершена 2026-11-13 20:26:46 +03:00. Фактическое календарное время 8 минут 33 секунды; это не сумма агентного времени. Ориентир 2–3 часа не исчерпан. Незавершенных обязательных пунктов нет.
|
||
README-команды генератор→ETL→SQL проверены исполнителем в новой docs/verification/: тот же SHA256 входа, 301/290/11, 99119395 копеек, SQL 3/30/1; повтор тестов 6 OK (0.132s). Доказательства: docs/verification/RUN_LOG.md и coordination/handoffs/documentation-engineer.md.
|
||
Начало работы 2026-11-13 20:18:13 +03:00. Это учебный локальный ETL на синтетических данных.
|
||
|
||
| Требование | Файл | Проверка | Результат |
|
||
|---|---|---|---|
|
||
| Грязные данные с seed | scripts/generate_data.py, data/raw/orders.csv | генерация seed 42 | 301 строка |
|
||
| Очистка и точные деньги | src/pipeline.py | ручная независимая фикстура unittest | 2 факта, 2080 копеек |
|
||
| Дубли, конфликты, пропуски, даты | tests/test_pipeline.py | приоритеты и первая валидная запись | PASS |
|
||
| Баланс и причины | reports/etl/quality.json, rejected.csv | 301=290+11, сумма причин 11 | PASS |
|
||
| Факты и агрегаты | output/sales.sqlite | сумма обеих таблиц | 99119395 копеек |
|
||
| Идемпотентность | tests/test_pipeline.py | два запуска, сортированные логические данные | PASS |
|
||
| Пустой и весь плохой вход | tests/test_pipeline.py | корректная пустая замена | PASS |
|
||
| Атомарность БД | tests/test_pipeline.py | SQL trigger вызывает сбой INSERT после DELETE | прежние данные сохранены |
|
||
| Три SQL | sql/*.sql, reports/sql/*.csv | реальный runner, пустая БД, повтор CSV | 3 категории, 30 дней, 1 сигнал |
|
||
| Независимая приемка | tests/test_pipeline.py | тимлид: unittest discover -s tests -v | 6 tests, 0.129s, OK |
|
||
|
||
Качество: missing_required=2, invalid_date=2, invalid_quantity=2, invalid_price=3, duplicate=1, conflicting_key=1. Принятые исправленные=290 (синтетический генератор намеренно варьирует представление). Валюта RUB, суммы в копейках.
|
||
|
||
Ограничения: CSV целиком в памяти; полная перезагрузка, порядок конфликтующих строк значим; три формата дат без времени; одна валюта; возвраты не моделируются. Общей транзакции БД и файлов отчетов нет: при сбое публикации отчетов нужен повтор. Аномалия — сигнал, не дефект исходной записи. Внешняя эксплуатация, большие данные и конкурентные запуски не проверялись.
|