LINUX.ORG.RU

Сообщения artem-smirnov

 

Aрхитектурное решение для хранения и работы с данными геокоординат при высоких нагрузках?

Форум — Web-development

Всем доброго времени суток!

Я участвую в разработке высоконагруженной системы, значительную часть данных которой составляют географические координаты (пара latitude, longitude, в градусах, точность - 0.00001 градуса).

Проект спроектирован по микросервисной архитектуре.

В системе есть несколько таблиц (сущностей), для которых организован gps-трекинг. Геокоординаты складываются в таблицы, ассоциированные с этими сущностями (тек. момент - 2). Запросов на добавление геокоординат- 5 млн/минуту, для каждой сущности.

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

В данный момент, на каждый «отчет» статистики создана своя таблица. Базой выбрана PostgreSQL, с расширением PostGis. Для таблиц статистических «отчетов», назначены индексы GiST. Они позволяют быстро фильтровать геокоординаты относительно искомой геокоординаты (Index Scan). Данные в таблицах статистических «отчетов» пересчитываются по таймеру.

Нормально ли вообще текущее существующее решение. Можно ли с ним будет работать далее? Или пересчитывать что-то по таймеру, с такими объемами данных - очень плохо? Вообще альтернативы я не вижу, кэширование мне кажется, тут не подходит тоже.

 ,

artem-smirnov
()

RSS подписка на новые темы