Чат хакатона
PostgreSQL
Проблематика
Основная проблема заключается в отсутствии инструмента для проактивного контроля SQL-запросов к PostgreSQL, что приводит к критическим сбоям в работе баз данных:

1. Отсутствие средств автоматизированных рекомендаций по оптимизации запросов и структуры БД, что увеличивает время устранения проблем и накладывает зависимость от экспертных знаний.
2. Невозможность предотвращения критических нагрузок на этапе разработки, влекущая за собой простои, задержки в обработке данных и снижение качества сервиса.
Образ решения
Цель данного кейса — создать умный инструмент, который будет анализировать SQL-запросы до их выполнения и минимизировать риски. Инструмент должен включать следующий функционал:

Возможность сравнения оценок «стоимости» запросов до и после применения рекомендаций без реального выполнения запросов и изменения структуры базы данных.
Прогнозирование ресурсоемкости запросов с детализацией по ключевым метрикам.
Генерация рекомендаций по оптимизации запросов и конфигурации PostgreSQL.
Предупреждение о потенциально опасных операциях в режиме реального времени.
Функциональные требования
Оценка «стоимости» запроса до выполнения
Анализ плана выполнения (EXPLAIN) без запуска запроса для прогнозирования времени, I/O и использования памяти.
Отображение метрик: ожидаемое время выполнения, объем сканируемых данных, уровень блокировок.

Рекомендации по оптимизации
Для SQL-запросов: предложения по добавлению/изменению индексов, переписыванию текста запроса, устранению N+1 проблем.
Для БД: рекомендации по настройке параметров (например, work_mem), тюнингу autovacuum, секционированию и изменению структуры таблиц, дефрагментации таблиц и индексов.
Классификация рекомендаций по приоритету (высокий/средний/низкий) с оценкой потенциального ускорения.

Предотвращение проблем с производительностью
Интеграция с CI/CD для анализа запросов на этапе разработки.
Выявление шаблонов проблемных запросов через анализ логов и формирование профилактических мер.
Формат загрузки решения
Решение должно быть представлено на платформу не позднее 9 сентября 22:00 МСК в следующем виде:

1. Ссылка на исходный код в VCS (системе контроля версий — GitHub, GitLab, Mercury или иные).
2. Ссылка на архив с исходным кодом проекта.
3. Ссылка на видеодемо работы проекта (видео, показывающее процесс работы вашего решения,
с комментариями или без них, не длиннее 2 минут, при наличии).
4. Ссылка на презентацию проекта в формате .pdf.

В качестве облачного сервиса используйте Яндекс Диск.
Оптимальный состав команды
1 Аналитик (DBA)
1 DBO
1 Backend-разработчик
1 DevRel*

* Привлекать таких специалистов следует в случае полного формирования команды (5 человек), когда полностью закрыты все необходимые компетенции.

Ограничения
Используется ванильный (vanilla) PostgreSQL.
Допускается расширение pg_stat_statements, другие расширения не допускаются.
Итоговое решение должно работать на версиях PostgreSQL, начиная от 15 и выше.
Решение должно работать под учетной записью с правами только на чтение. Выдача прав суперпользователя не предусмотрена.
Критерии оценивания
- Оценка качества работы решения
- Оценка интегрируемости решения
- Оценка проработанности решения
- Оценка бизнес-функциональности решения
Желаем успехов!
Остались вопросы?
Чат хакатона
Почта
Оператор хакатона
©Все права защищены