# Свой график в Superset В этой работе вы построите график по своей витрине и проверите числа на нем SQL-запросом. ## Подготовка - [«Немного Superset»](../handbook/superset.md); - [задание 3: `dm.session_overview`](1-3-session-overview.md). ## График отказов по устройствам В задании 3 первой ступени вы собрали витрину `dm.session_overview_v`. Теперь покажите, с каких устройств чаще уходят после единственного события. Такие визиты в стенде считаются отказами. Постройте столбиковый график доли отказов по `device_category` за весь период витрины. Каждый столбик должен показывать долю для одной категории устройств. ## Настройка графика Добавьте представление как источник данных для графиков. В Superset такой источник называется физическим датасетом. Выберите подключение `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#стендовые-объекты-и-ваши). ## Проверка результата Автоматической проверки этого задания нет. Сверьте числа на графике с результатом запроса в 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; - [ ] вы сохранили график отдельно, без создания дашборда и изменения стендовых объектов.