- Зачем:
- в 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>
91 lines
5.1 KiB
Markdown
91 lines
5.1 KiB
Markdown
# Свой график в 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;
|
||
- [ ] стендовые объекты не изменены, дашборд не создан.
|