- Зачем:
- экран отвечал только графиками: итога за период не было, доли категорий
читались по высоте столбиков, а известные пользователи лежали на нуле
рядом с посетителями.
- Что:
- добавлены ряд крупных чисел (выручка, заказы, средний чек, посетители),
кольцо долей категорий и линия доли известных пользователей;
- средний чек и доля известных заведены метриками датасетов, знаменатель
через `nullIf`: на пустом периоде деление Decimal на ноль в ClickHouse
роняет панель;
- фильтр «Период» сужает все панели, включая сверку по `order_day`;
- `label_colors` закрепляет цвет за категорией и за рядами трафика;
- деньги без копеек, единица в названии панели; подписи дат читаются как
даты; сводная сверки развернута классами по строкам и уместилась без
прокрутки;
- обновлены справочник Superset и глава путеводителя.
- Проверка:
- `make lint`;
- `superset import-directory /app/import --overwrite` на живом стенде, экран
снят в браузере: девять панелей отрисованы, цвет категории одинаков на
столбиках и в кольце;
- период 03.06–06.06 сузил все панели, включая сводную по `order_day`;
- `SUM(revenue) / nullIf(SUM(orders), 0)` на периоде без заказов возвращает
NULL, без `nullIf` — исключение 153.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4.3 KiB
Немного Superset
Superset показывает витрины слоя DM в виде графиков. К ClickHouse он
подключается пользователем bi. Дашборд стенда «Бизнес-сюжеты» собран из трех
витрин:
| Витрина | Что показывает |
|---|---|
dm.revenue_daily_v |
выручку, заказы и средний чек крупными числами, выручку по дням и категориям столбиками, доли категорий кольцом |
dm.purchase_vs_orders_v |
сводную сверки: сколько заказов дня попало в каждый класс расхождения |
dm.daily_traffic_v |
число посетителей крупно, посетителей и известных пользователей по дням, отдельно — долю известных |
Слева от панелей стоит фильтр «Период». Он задает даты сразу для всех панелей.
Как витрина становится графиком
От витрины до экрана три объекта Superset: датасет → график → дашборд. Датасет описывает витрину: задает русские имена колонок, формат чисел и показатели — например, средний чек. График ссылается на эти имена и задает способ показа. Дашборд собирает готовые графики на одном экране.
Стендовые объекты и ваши
Датасеты, графики и дашборд из поставки стенда лежат файлами в репозитории и
заново импортируются при каждом make up. Если поправить такой объект в
интерфейсе, правка проживет до следующего make up, а потом без предупреждения
заменится версией из файла.
Ваши собственные объекты хранятся в той же базе метаданных Superset, но импорт
их не трогает: они переживают и make up, и make rebuild-storage. Стирает их
только make clean вместе с остальным постоянным состоянием стенда. Поэтому
стендовые объекты оставляйте как есть, а свои отчеты стройте рядом. Устройство
импорта описано в справочнике
Superset.
Почему края графиков не совпадают
Правый край графика выручки всегда на день позади графиков кликстрима. Слепок заказов за день приходит только со следующим модельным днем. Так устроен источник, а не витрина. Вы уже видели этот сдвиг в главе об Airflow. Начальное состояние показано в разделе «Стартовый мир».
Посмотрите сами
Откройте Superset по адресу из раздела «Адреса и пароли» и выберите дашборд «Бизнес-сюжеты». Затем откройте SQL Lab и выполните запрос:
SELECT report_date, visitors, known_users
FROM dm.daily_traffic_v
ORDER BY report_date DESC
LIMIT 7;
Как построить свой отчет, рассказывают учебные задания.
Куда дальше
Устройство BI-зоны описано в справочнике Superset, а состав витрин — в справочнике DM. Следующая глава — «Генератор: откуда берутся данные».