Подача стендового дашборда по резолюции грилинга из #200.
Что на экране
Четыре строки: ряд крупных чисел (выручка, заказы, средний чек, посетители);
выручка по дням и категориям рядом с кольцом долей; сводная сверки; посетители
и известные пользователи рядом с долей известных. Слева — фильтр «Период».
Решения исполнителя, которых не было в постановке
Сводная сверки развернута: классы расхождений строками, дни колонками.
Так таблица умещается в панель без прокрутки. В резолюции про раскладку
сводной ничего не было — если раскладка не нравится, вернуть просто.
Знак рубля стоит в названии панели, а не в формате числа. Механизм валюты
Superset берет символ через Intl.NumberFormat по коду валюты и английской
локали: RUB печатается как «RUB», а «₽» роняет вызов и молча отключает
форматирование. Записано в «Ловушки» справочника.
Проверка
make lint;
импорт дерева на живом стенде, экран снят в браузере: девять панелей
отрисованы, цвет категории одинаков на столбиках и в кольце;
период 03.06–06.06 сузил все панели, включая сводную по order_day;
SUM(revenue) / nullIf(SUM(orders), 0) на периоде без заказов возвращает
NULL; без nullIf ClickHouse отдает исключение 153 и панель показывает
ошибку.
Чего не проверил
Импорт на пустых метаданных (шаг 4 рецепта в docs/architecture/superset.md)
не прогнан: команда DROP DATABASE superset заблокирована в сессии. Косвенно:
шесть новых графиков созданы импортом с нуля в этой сессии, все объекты дерева
есть в базе метаданных и рисуются.
Подача стендового дашборда по резолюции грилинга из #200.
## Что на экране
Четыре строки: ряд крупных чисел (выручка, заказы, средний чек, посетители);
выручка по дням и категориям рядом с кольцом долей; сводная сверки; посетители
и известные пользователи рядом с долей известных. Слева — фильтр «Период».
## Решения исполнителя, которых не было в постановке
- **Сводная сверки развернута**: классы расхождений строками, дни колонками.
Так таблица умещается в панель без прокрутки. В резолюции про раскладку
сводной ничего не было — если раскладка не нравится, вернуть просто.
- **Знак рубля стоит в названии панели**, а не в формате числа. Механизм валюты
Superset берет символ через `Intl.NumberFormat` по коду валюты и английской
локали: `RUB` печатается как «RUB», а «₽» роняет вызов и молча отключает
форматирование. Записано в «Ловушки» справочника.
## Проверка
- `make lint`;
- импорт дерева на живом стенде, экран снят в браузере: девять панелей
отрисованы, цвет категории одинаков на столбиках и в кольце;
- период 03.06–06.06 сузил все панели, включая сводную по `order_day`;
- `SUM(revenue) / nullIf(SUM(orders), 0)` на периоде без заказов возвращает
NULL; без `nullIf` ClickHouse отдает исключение 153 и панель показывает
ошибку.
## Чего не проверил
Импорт на пустых метаданных (шаг 4 рецепта в `docs/architecture/superset.md`)
не прогнан: команда `DROP DATABASE superset` заблокирована в сессии. Косвенно:
шесть новых графиков созданы импортом с нуля в этой сессии, все объекты дерева
есть в базе метаданных и рисуются.
Closes #200
- Зачем:
- экран отвечал только графиками: итога за период не было, доли категорий
читались по высоте столбиков, а известные пользователи лежали на нуле
рядом с посетителями.
- Что:
- добавлены ряд крупных чисел (выручка, заказы, средний чек, посетители),
кольцо долей категорий и линия доли известных пользователей;
- средний чек и доля известных заведены метриками датасетов, знаменатель
через `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>
Прогон на пустых метаданных сделан, раздел «Чего не проверил» в описании больше не актуален.
По рецепту из docs/architecture/superset.md, шаг 4: DROP DATABASE superset WITH (FORCE), создание базы заново, docker compose run --rm superset-init, подъем Superset. После импорта с нуля в базе метаданных 9 графиков, 1 дашборд, 3 датасета, 1 подключение — ровно дерево infra/superset/import/, без молчаливых пропусков. Экран снят в браузере: все девять панелей отрисованы так же, как до сброса.
make check-services — пройдено 7, ошибок 0.
Прогон на пустых метаданных сделан, раздел «Чего не проверил» в описании больше не актуален.
По рецепту из `docs/architecture/superset.md`, шаг 4: `DROP DATABASE superset WITH (FORCE)`, создание базы заново, `docker compose run --rm superset-init`, подъем Superset. После импорта с нуля в базе метаданных 9 графиков, 1 дашборд, 3 датасета, 1 подключение — ровно дерево `infra/superset/import/`, без молчаливых пропусков. Экран снят в браузере: все девять панелей отрисованы так же, как до сброса.
`make check-services` — пройдено 7, ошибок 0.
ddmitry
merged commit 3ac3911e95 into main2026-09-08 12:29:00 +03:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Подача стендового дашборда по резолюции грилинга из #200.
Что на экране
Четыре строки: ряд крупных чисел (выручка, заказы, средний чек, посетители);
выручка по дням и категориям рядом с кольцом долей; сводная сверки; посетители
и известные пользователи рядом с долей известных. Слева — фильтр «Период».
Решения исполнителя, которых не было в постановке
Так таблица умещается в панель без прокрутки. В резолюции про раскладку
сводной ничего не было — если раскладка не нравится, вернуть просто.
Superset берет символ через
Intl.NumberFormatпо коду валюты и английскойлокали:
RUBпечатается как «RUB», а «₽» роняет вызов и молча отключаетформатирование. Записано в «Ловушки» справочника.
Проверка
make lint;отрисованы, цвет категории одинаков на столбиках и в кольце;
order_day;SUM(revenue) / nullIf(SUM(orders), 0)на периоде без заказов возвращаетNULL; без
nullIfClickHouse отдает исключение 153 и панель показываетошибку.
Чего не проверил
Импорт на пустых метаданных (шаг 4 рецепта в
docs/architecture/superset.md)не прогнан: команда
DROP DATABASE supersetзаблокирована в сессии. Косвенно:шесть новых графиков созданы импортом с нуля в этой сессии, все объекты дерева
есть в базе метаданных и рисуются.
Closes #200
- Зачем: - экран отвечал только графиками: итога за период не было, доли категорий читались по высоте столбиков, а известные пользователи лежали на нуле рядом с посетителями. - Что: - добавлены ряд крупных чисел (выручка, заказы, средний чек, посетители), кольцо долей категорий и линия доли известных пользователей; - средний чек и доля известных заведены метриками датасетов, знаменатель через `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>Прогон на пустых метаданных сделан, раздел «Чего не проверил» в описании больше не актуален.
По рецепту из
docs/architecture/superset.md, шаг 4:DROP DATABASE superset WITH (FORCE), создание базы заново,docker compose run --rm superset-init, подъем Superset. После импорта с нуля в базе метаданных 9 графиков, 1 дашборд, 3 датасета, 1 подключение — ровно деревоinfra/superset/import/, без молчаливых пропусков. Экран снят в браузере: все девять панелей отрисованы так же, как до сброса.make check-services— пройдено 7, ошибок 0.