TGViewer
Ozon Tech Ozon Tech @ozon_tech · 30K subscribers
Post #2299 3.97K
Чтобы предоставлять доступ к аналитическим данным по HTTP, часто достаточно просто подобрать аналитическую СУБД и сделать endpoint к ней. Но есть нюанс: OLAP-базы данных не держат большой RPS. Рассказываем, как отдаём большие аналитические данные через API (и не кладём сервис).

Привет, это Тимофей Пуриц из команды разработки микросервисов тарификации. Представим сценарий: каждый день примерно в 18:00 продавцы на Ozon получают отчёты по продажам и одновременно нажимают кнопку «Загрузить отчёт». Сейчас в Ozon более 750 000 активных продавцов, и даже если не все они захотят скачать отчёт одновременно, всплеск нагрузки всё равно может быть значительным.

⚙️ Чтобы посмотреть, какой RPS может держать система, я создал экспериментальный стенд и попробовал несколько подходов с ClickHouse. Сама по себе база начинает деградировать по времени ответа уже на 70 RPS. Но если применить стратегию hot/cold storage на PostgreSQL, система держит уже 240 RPS. Добавляем кеширование результатов запросов — и без особого тюнинга система выдерживает уже 800 RPS.

Конечно, двумя подходами я не ограничился и предложил ещё ряд улучшений. Всё это вы найдёте в моей статье: архитектура стенда, SQL-запросы, результаты нагрузочных тестов и ответ на вопрос, почему в высоконагруженной системе каждому компоненту лучше заниматься своей задачей.

#ozontech_habr
  • 👍 10
  • ⚡ 4
  • ❤ 3
More from @ozon_tech
  1. Oct 15, 2026Математика, физика, оптика в одном докладе — Илья Милёшин, разработчик систем автоматизиро…
  2. Oct 13, 2026⬆️ как чувствует себя стажёр, когда пришёл в Ozon Tech и получил реальную инженерную задач…
  3. Oct 12, 2026Пригласили Даню Крастера в гости, рассказали и показали, как создаём свои системы автосорт…
  4. Oct 9, 2026👣 Исследуем города c Ozon Tech: сегодня гуляем в Минске Ищем фотогеничные дворики и рассм…
  5. Oct 8, 2026Инициализация компонентов может занимать более половины времени запуска больших Android-пр…
  6. Oct 7, 2026Если задача не принята, значит, она ещё не передана. Нашли для себя простой способ сделать…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →