Чтобы к пятнице отчет был на моём столе 👉 Пусть у этой рабочей недели будет кольцевая композиция — публикую разбор кейса с долгой выгрузкой отчетов, который обсуждали в понедельник.

1️⃣ Базовый минимум Аналитик ставит разрабу задачу на оптимизацию плана запроса и ожидает результат. Иногда срабатывает.

2️⃣ Пакет Оптимум Потребуется сбор требований и более обширные доработки ⬇️ 📌Точно ли пользователям нужен большой отчет? Как они его используют? Если насилуют полученную царь-эксельку фильтрами, то можно добавить фильтры прямо в GET-метод получения отчета. Это позволит ограничить выборку и ускорить операцию.

📌 Отчет выгружается в какие-то конкретные даты и всегда одинаковый? Или когда угодно и разный? Если работу с отчетом можно прогнозировать — рассмотреть вариант предварительной генерации. В виде materialized view или выгрузки отчетов в хранилище вроде MinIo по согласованному расписанию.

3️⃣ Роскошный максимум Я сам своего рода архитектор⬇️ 📌 Есть ли в вашей системе другие отчеты? Можно ли обрабатывать их централизованно? Хорошим архитектурным тоном будет выделение функционала отчетов в отдельный сервис, база которого будет оптимизирована именно под эти задачи. Таким образом, аналитический функционал не будет влиять на транзакционную активность — потоковую обработку заявок.

📌 А почему мы вообще должны этим заниматься? Если данных прям много, можно сгружать всё в другую систему — DWH. Там точно умеют работать с большими отчетами всех мастей. Это самый организационно сложный путь, но настоящий корпоративный футболист осилит и его.

Все эти вопросы вполне может задавать аналитик, в этом и заключается его работа 🌪 🍌- предложу разрабу решить вопросик 🤓 - сам достану всех своими вопросиками


В этом посте были ссылки, но мы их удалили по правилам Сетки

Чтобы к пятнице отчет был на моём столе 👉
Пусть у этой рабочей недели будет кольцевая композиция — публикую разбор кейса с долгой выгрузкой отчетов, который обсуждали в понедельник | Сетка — социальная сеть от hh.ru