docs(labs): упрощен язык учебных заданий

Зачем: помочь менти понять действия, проверить результат и оценить освоенное умение.

Что: вычитаны 13 заданий основной программы и общий индекс. Итоговые списки обращены к учащемуся, убраны история разработки и повторы. Правила учебного текста записаны в программе, из AGENTS.md добавлена ссылка.

Проверка: git diff --check, локальные ссылки и ссылки на измененные заголовки прошли. Блоки кода и таблицы требований совпадают с исходными. Упражнения на стенде повторно не выполнялись: изменен только текст.
This commit is contained in:
ddadmin committed 2026-09-13 11:01:35 -04:00
1 parent a03838b953
commit 4058e18864
16 files changed
+287 -269

No files matched your search

+13 -15
View File
@@ -1,15 +1,14 @@
# Задание 4: `dm.dq_errors_daily`
**Чему учит:** считать брак по дню загрузки и сохранять сводку дольше
исходных строк. Пересборка всех партиций после удаления источника по `TTL`
стирает историю, которую уже не восстановить.
исходных строк.
## Сначала прочитать
- [«Хранилище и его слои»](../handbook/storage-layers.md);
- [«Потоки Airflow и даги модельного времени»](../handbook/airflow-dags.md).
## Роль витрины
## Для чего нужна витрина
Сводку открывают при росте брака в потоке: смотрят, каких ошибок стало
больше и сколько строк забраковано. Причину конкретной ошибки исследуют
@@ -97,17 +96,16 @@
`ods.event_errors_dist` и `ods.order_errors_dist`. Если она примерно вдвое
меньше, вероятная причина — чтение `_rep` вместо `_dist`.
Пустая витрина на чистом стенде — верный ответ: обе стороны пусты,
расхождений ноль, проверка успешна. Требование хотя бы одной строки дало бы
постоянную ошибку, которую со временем стали бы игнорировать.
Если в источниках нет брака, витрина должна быть пустой. В этом случае
расхождений тоже ноль и проверка успешна.
## Приемка
## Что должно получиться
- [ ] созданы пять объектов, донор объявлен через `AS` и шардируется ключом
цели;
- [ ] источники — таблицы `_dist` обоих видов брака;
- [ ] прогон заменяет партиции только дней, еще имеющихся в источниках, и
сохраняет дни за пределами их срока хранения;
- [ ] задача `dq_errors_daily` в `homework_check` завершилась успешно, в том
числе на чистом стенде без брака;
- [ ] задача витрины добавлена в `dm_transform`.
- [ ] у вас есть пять объектов витрины; донор объявлен через `AS` и
использует ключ шардирования целевой таблицы;
- [ ] вы собираете сводку из таблиц `_dist` для ошибок событий и заказов;
- [ ] ваш запрос пересобирает только дни, еще доступные в источниках,
сохраняя более старые итоги;
- [ ] вы запустили `dq_errors_daily` в `homework_check`, проверка успешна;
отсутствие брака тоже дает успешный результат;
- [ ] вы включили сборку витрины в `dm_transform`.