docs(labs): файлы ТЗ переименованы по схеме S-N-slug

- Зачем:
  - в docs/labs/ будет много заданий; номер ступени и номер задания в имени
    делают папку оглавлением программы и избавляют от поиска по README (#230).
- Что:
  - шесть ТЗ переименованы через git mv: 1-1…1-5 для ступени 1,
    2-1-superset-chart.md для ступени 2; факультатив superset-dashboard.md
    остался без номера.
  - обновлены ссылки в docs/labs/README.md, 2-1-superset-chart.md,
    docs/architecture/dds/session.md и пути в dags/homework_check.py.
  - правило имен для docs/labs/ в AGENTS.md переписано под S-N-slug.
- Проверка:
  - make lint; скрипт обхода относительных ссылок в docs/ и AGENTS.md —
    битых нет.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
ddadminandClaude Fable 5.1 committed 2026-09-06 09:09:14 -04:00
1 parent 8b9258ed41
commit d955f7d694
10 files changed
+21 -17

No files matched your search

+90
View File
@@ -0,0 +1,90 @@
# Свой график в Superset
**Чему учит:** увидеть, как собственный результат из хранилища становится
отчетом в BI.
## Сначала прочитать
- [«Немного Superset»](../handbook/superset.md);
- [задание 3: `dm.session_overview`](1-3-session-overview.md).
## Роль графика
В задании 3 вы собрали витрину `dm.session_overview_v`. Теперь покажите, с
каких устройств чаще уходят после первой страницы. Постройте столбиковый
график доли отказов по `device_category` за весь период витрины. Измерение
одно — `device_category`, метрика тоже одна.
## Что сделать
Заведите физический датасет в подключении к `ClickHouse`: схема `dm`, объект
`session_overview_v`. Назовите по-русски хотя бы две колонки:
- `device_category` — «Категория устройства»;
- `report_date` — «Дата отчета».
В редакторе датасета, на вкладке «Metrics», создайте метрику:
| Поле | Значение |
|---|---|
| `Metric Key` | `bounce_share` — ключ метрики и ее SQL-псевдоним |
| `Label` | «Доля отказов» |
| `SQL expression` | `SUM(bounce_sessions) / SUM(sessions)` |
| `D3 format` | `.1%` |
Доля считается из сумм слагаемых: среднее готовых долей соврет. Поэтому
метрике нужно это выражение. Сохраните ее в датасете, а не в графике:
подписи и формат задаются в датасете, а график их использует. Так во всех
будущих графиках у метрики будут одинаковые подписи. Это правило описано в
[справочнике Superset](../architecture/superset.md#дерево-импорта).
Не используйте вкладку «Custom SQL» конструктора графика. Созданная там
метрика доступна только этому графику, а нужна метрика датасета.
Создайте столбиковый график с метрикой «Доля отказов». В поле «X-axis»
укажите «Категория устройства», а «Dimensions» не заполняйте. Дашборд
создавать не нужно: сохраненного графика достаточно.
По умолчанию в графике выбран период «No filter». Оставьте его таким или
задайте явные даты. Относительный период, например «Last week», даст пустой
график: модельный календарь стенда отстает от настоящего. Последнюю дату
витрины посмотрите в SQL Lab:
```sql
SELECT max(report_date)
FROM dm.session_overview_v;
```
Стендовые объекты не меняйте. Что переживает `make up`, а что стирает
`make clean`, описано в главе [«Немного Superset»](../handbook/superset.md#стендовые-объекты-и-ваши).
## Как проверить себя
График проверяется глазами, поэтому задачи для него в `homework_check` нет.
В SQL Lab выполните запрос:
```sql
SELECT device_category,
round(100 * sum(bounce_sessions) / sum(sessions), 1) AS bounce_pct
FROM dm.session_overview_v
GROUP BY device_category
ORDER BY device_category;
```
Сверьте с графиком значение для каждой категории. В разделе «Customize»
включите «Show Value» или наведите указатель на столбик. Запрос возвращает
проценты с одним знаком, как формат `.1%`, поэтому числа должны совпасть
один в один.
## Приемка
- [ ] создан физический датасет `dm.session_overview_v` в подключении
`ClickHouse`;
- [ ] в датасете есть метрика «Доля отказов» с выражением
`SUM(bounce_sessions) / SUM(sessions)` и форматом `.1%`;
- [ ] для `device_category` и `report_date` заданы русские имена «Категория
устройства» и «Дата отчета»;
- [ ] сохранен столбиковый график доли отказов по категориям устройств без
относительного фильтра по времени;
- [ ] график сверен с запросом из SQL Lab;
- [ ] стендовые объекты не изменены, дашборд не создан.