- Зачем:
- в 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>
5.1 KiB
Свой график в Superset
Чему учит: увидеть, как собственный результат из хранилища становится отчетом в BI.
Сначала прочитать
Роль графика
В задании 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.
Не используйте вкладку «Custom SQL» конструктора графика. Созданная там метрика доступна только этому графику, а нужна метрика датасета.
Создайте столбиковый график с метрикой «Доля отказов». В поле «X-axis» укажите «Категория устройства», а «Dimensions» не заполняйте. Дашборд создавать не нужно: сохраненного графика достаточно.
По умолчанию в графике выбран период «No filter». Оставьте его таким или задайте явные даты. Относительный период, например «Last week», даст пустой график: модельный календарь стенда отстает от настоящего. Последнюю дату витрины посмотрите в SQL Lab:
SELECT max(report_date)
FROM dm.session_overview_v;
Стендовые объекты не меняйте. Что переживает make up, а что стирает
make clean, описано в главе «Немного Superset».
Как проверить себя
График проверяется глазами, поэтому задачи для него в homework_check нет.
В SQL Lab выполните запрос:
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;
- стендовые объекты не изменены, дашборд не создан.