Files
clickstream-data-platform/docs/handbook/superset.md
T
ddadminandClaude Opus 5 b6c10ecf21 feat(superset): подача дашборда «Бизнес-сюжеты»
- Зачем:
  - экран отвечал только графиками: итога за период не было, доли категорий
    читались по высоте столбиков, а известные пользователи лежали на нуле
    рядом с посетителями.
- Что:
  - добавлены ряд крупных чисел (выручка, заказы, средний чек, посетители),
    кольцо долей категорий и линия доли известных пользователей;
  - средний чек и доля известных заведены метриками датасетов, знаменатель
    через `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>
2026-09-08 03:35:00 -04:00

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. Следующая глава — «Генератор: откуда берутся данные».