# Свой график в Superset **Чему учит:** увидеть, как собственный результат из хранилища становится отчетом в BI. ## Сначала прочитать - [«Немного Superset»](../handbook/superset.md); - [задание 3: `dm.session_overview`](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; - [ ] стендовые объекты не изменены, дашборд не создан.