docs(labs): упрощен язык учебных заданий
Зачем: помочь менти понять действия, проверить результат и оценить освоенное умение. Что: вычитаны 13 заданий основной программы и общий индекс. Итоговые списки обращены к учащемуся, убраны история разработки и повторы. Правила учебного текста записаны в программе, из AGENTS.md добавлена ссылка. Проверка: git diff --check, локальные ссылки и ссылки на измененные заголовки прошли. Блоки кода и таблицы требований совпадают с исходными. Упражнения на стенде повторно не выполнялись: изменен только текст.
This commit is contained in:
1 parent
a03838b953
commit
4058e18864
16 files changed
+287
-269
No files matched your search
@@ -1,16 +1,16 @@
|
||||
# Перепиши нарезку стенда
|
||||
# Перепишите нарезку стенда
|
||||
|
||||
**Чему учит:** изменить расчетную сущность внутри готового конвейера и
|
||||
проверить результат внешним эталоном.
|
||||
**Чему учит:** переписать расчет сессий в готовом конвейере и проверить
|
||||
результат по исходным событиям.
|
||||
|
||||
## Сначала прочитать
|
||||
|
||||
- [задание «Нарежь сессии сам»](3-1-sessions-by-hand.md);
|
||||
- [задание «Нарежьте сессии сами»](3-1-sessions-by-hand.md);
|
||||
- [модель сессии DDS](../architecture/dds/session.md);
|
||||
- [дневной конвейер трансформаций](../architecture/etl.md#объём-прогона);
|
||||
- [раскладка по шардам](../architecture/storage.md#раскладка-по-шардам).
|
||||
|
||||
## Граница задания
|
||||
## Что предстоит сделать
|
||||
|
||||
Даг, таблицы сессий и проверка их числа уже созданы.
|
||||
Перепишите только три файла:
|
||||
@@ -24,7 +24,7 @@
|
||||
служебная таблица, где день собирается перед заменой. В
|
||||
`sessions_vs_reference.sql` число сессий сравнивается с `VisitID` из ODS.
|
||||
|
||||
## Договор с дагом
|
||||
## Как даг запускает ваши запросы
|
||||
|
||||
Объем прогона — дни, которые соберет один запуск. Его вычисляет первый файл.
|
||||
|
||||
@@ -74,7 +74,7 @@ ClickHouse в `ALTER ... PARTITION` здесь не работает.
|
||||
Состав и типы строки заданы в `dds.session_rep`. Заполните начало, конец и
|
||||
длительность. Посчитайте все события, просмотры, добавления в корзину и
|
||||
покупки. Возьмите входную и выходную страницы, UTM первого события, устройство
|
||||
и город. Служебные колонки тоже входят в договор таблицы.
|
||||
и город. Заполните также служебные колонки из схемы таблицы.
|
||||
|
||||
Пишите через `dds.session_stage_dist`: место строки определит ключ
|
||||
`client_id`. При записи прямо в локальную таблицу оно зависело бы от ноды,
|
||||
@@ -178,15 +178,14 @@ Distributed-таблицу и такую ошибку не заметит.
|
||||
партицию. Расчет объема должен пропустить группу сессий: новых прожитых дней и
|
||||
дыр в слое нет.
|
||||
|
||||
## Приемка
|
||||
## Что должно получиться
|
||||
|
||||
- [ ] переписаны только три файла `sql/dds/session_*.sql`, инфраструктура
|
||||
упражнения не изменена;
|
||||
- [ ] запуск после удаления партиции восстановил выбранный день и завершил
|
||||
`etl_pipeline` успешно;
|
||||
- [ ] сохраненные `session_id`, границы, длительность и счетчики десяти строк
|
||||
совпали после пересборки;
|
||||
- [ ] `sessions_vs_reference` дает ноль расхождений во всех прожитых днях;
|
||||
- [ ] для одной куки вручную сверены границы и атрибуты сессии;
|
||||
- [ ] пересчет ключа по `hostName()` не нашел строк на чужом шарде;
|
||||
- [ ] повторный прогон без новой дыры пропустил группу сессий.
|
||||
- [ ] вы переписали три файла `sql/dds/session_*.sql`, сохранив даг,
|
||||
таблицы и проверку стенда;
|
||||
- [ ] ваш расчет восстановил удаленный день, `etl_pipeline` завершился успешно;
|
||||
- [ ] вы сверили десять сохраненных строк: `session_id`, границы,
|
||||
длительность и счетчики совпали после пересборки;
|
||||
- [ ] вы получили ноль расхождений в `sessions_vs_reference` за все
|
||||
прожитые дни и вручную сверили границы и атрибуты сессии одной куки;
|
||||
- [ ] ваш запрос с `hostName()` не нашел строк на чужом шарде;
|
||||
- [ ] вы повторили прогон без удаления данных: он пропустил группу сессий.
|
||||
Reference in new issue
Block a user