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>
This commit is contained in:
ddadminandClaude Opus 5 committed 2026-09-08 03:35:00 -04:00
1 parent 3ad377e02e
commit b6c10ecf21
14 files changed
+378 -32

No files matched your search

+11 -9
View File
@@ -1,21 +1,23 @@
# Немного Superset
Superset показывает витрины слоя DM в виде графиков. К ClickHouse он
подключается пользователем `bi`. На дашборде стенда «Бизнес-сюжеты» три
графика:
подключается пользователем `bi`. Дашборд стенда «Бизнес-сюжеты» собран из трех
витрин:
| График | Витрина |
| Витрина | Что показывает |
|---|---|
| «Выручка по дням и категориям» | `dm.revenue_daily_v` |
| «Сверка purchase и заказов» | `dm.purchase_vs_orders_v` |
| «Посетители и известные пользователи» | `dm.daily_traffic_v` |
| `dm.revenue_daily_v` | выручку, заказы и средний чек крупными числами, выручку по дням и категориям столбиками, доли категорий кольцом |
| `dm.purchase_vs_orders_v` | сводную сверки: сколько заказов дня попало в каждый класс расхождения |
| `dm.daily_traffic_v` | число посетителей крупно, посетителей и известных пользователей по дням, отдельно — долю известных |
Слева от панелей стоит фильтр «Период». Он задает даты сразу для всех панелей.
## Как витрина становится графиком
От витрины до экрана три объекта Superset: датасет → график → дашборд. Датасет
описывает витрину: задает русские имена колонок и формат денег. График
ссылается на эти имена и задает способ показа. Дашборд собирает готовые графики
на одном экране.
описывает витрину: задает русские имена колонок, формат чисел и показатели —
например, средний чек. График ссылается на эти имена и задает способ показа.
Дашборд собирает готовые графики на одном экране.
## Стендовые объекты и ваши