- Зачем:
- экран отвечал только графиками: итога за период не было, доли категорий
читались по высоте столбиков, а известные пользователи лежали на нуле
рядом с посетителями.
- Что:
- добавлены ряд крупных чисел (выручка, заказы, средний чек, посетители),
кольцо долей категорий и линия доли известных пользователей;
- средний чек и доля известных заведены метриками датасетов, знаменатель
через `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>
65 lines
4.3 KiB
Markdown
65 lines
4.3 KiB
Markdown
# Немного 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](../architecture/superset.md#импорт-при-каждой-инициализации).
|
|
|
|
## Почему края графиков не совпадают
|
|
|
|
Правый край графика выручки всегда на день позади графиков кликстрима. Слепок
|
|
заказов за день приходит только со следующим модельным днем. Так устроен
|
|
источник, а не витрина. Вы уже видели этот
|
|
сдвиг в [главе об Airflow](airflow-dags.md#посмотрите-сами). Начальное состояние
|
|
показано в разделе [«Стартовый мир»](../architecture/world.md#стартовый-мир).
|
|
|
|
## Посмотрите сами
|
|
|
|
Откройте Superset по адресу из раздела [«Адреса и
|
|
пароли»](../../README.md#адреса-и-пароли) и выберите дашборд «Бизнес-сюжеты».
|
|
Затем откройте SQL Lab и выполните запрос:
|
|
|
|
```sql
|
|
SELECT report_date, visitors, known_users
|
|
FROM dm.daily_traffic_v
|
|
ORDER BY report_date DESC
|
|
LIMIT 7;
|
|
```
|
|
|
|
Как построить свой отчет, рассказывают [учебные задания](../labs/README.md).
|
|
|
|
## Куда дальше
|
|
|
|
Устройство BI-зоны описано в [справочнике
|
|
Superset](../architecture/superset.md), а состав витрин — в [справочнике
|
|
DM](../architecture/dm.md). Следующая глава — [«Генератор: откуда берутся
|
|
данные»](generator.md).
|