Чтобы к пятнице отчет был на моём столе 👉 Пусть у этой рабочей недели будет кольцевая композиция — публикую разбор кейса с долгой выгрузкой отчетов, который обсуждали в понедельник.
1️⃣ Базовый минимум Аналитик ставит разрабу задачу на оптимизацию плана запроса и ожидает результат. Иногда срабатывает.
2️⃣ Пакет Оптимум Потребуется сбор требований и более обширные доработки ⬇️ 📌Точно ли пользователям нужен большой отчет? Как они его используют? Если насилуют полученную царь-эксельку фильтрами, то можно добавить фильтры прямо в GET-метод получения отчета. Это позволит ограничить выборку и ускорить операцию.
📌 Отчет выгружается в какие-то конкретные даты и всегда одинаковый? Или когда угодно и разный? Если работу с отчетом можно прогнозировать — рассмотреть вариант предварительной генерации. В виде materialized view или выгрузки отчетов в хранилище вроде MinIo по согласованному расписанию.
3️⃣ Роскошный максимум Я сам своего рода архитектор⬇️ 📌 Есть ли в вашей системе другие отчеты? Можно ли обрабатывать их централизованно? Хорошим архитектурным тоном будет выделение функционала отчетов в отдельный сервис, база которого будет оптимизирована именно под эти задачи. Таким образом, аналитический функционал не будет влиять на транзакционную активность — потоковую обработку заявок.
📌 А почему мы вообще должны этим заниматься? Если данных прям много, можно сгружать всё в другую систему — DWH. Там точно умеют работать с большими отчетами всех мастей. Это самый организационно сложный путь, но настоящий корпоративный футболист осилит и его.
Все эти вопросы вполне может задавать аналитик, в этом и заключается его работа 🌪 🍌- предложу разрабу решить вопросик 🤓 - сам достану всех своими вопросиками
В этом посте были ссылки, но мы их удалили по правилам Сетки
· 18.10.2025
Да, отчёты все разные. MV могут не помочь, если нужны свежие оперативные данные с высокой частотой обновления. В этом случае и dwh не спасёт, но такое редко бывает по жизни.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён