Обновить
2
Артем Сиднев@sidnevart

Пользователь

Отправить сообщение

Как мы ускорили сбор аудиторий в 45 раз: с 6 минут до нескольких секунд

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели6.4K

К маю 2026 года средний сбор аудитории в нашей системе занимал 2 часа 50 минут. Проблема состояла из двух частей. Первая: 96.5% этого времени процесс стоял в очереди. Вторая: даже добравшись до исполнения, расчёт занимал 6 минут — десятки задач внутри DAG выполнялись над множествами в миллионы строк, и основным инструментом были JOIN.

Мы последовательно устранили обе проблемы — 20 изменений, разбитых на шесть этапов. Ниже описан каждый шаг и итоговый результат.

Все числа «до» и «после» получены одним и тем же SQL‑запросом по Postgres — это воспроизводимый замер.

Домен обобщён: конкретная компания не имеет значения. Это платформа, которая по булевым условиям («траты > 5000 ₽ за последние 3 месяца» И «покупки в категории Рестораны») собирает множество клиентских идентификаторов из 10-миллионной базы и доставляет его во внешние системы.

Погрузиться

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Фулстек разработчик
Средний
От 500 000 ₽
Git
PostgreSQL
Redis
Apache Kafka
Spring Boot
Kotlin
ClickHouse
Golang
Kubernetes
Высоконагруженные системы