artem-smirnov
@artem-smirnov
Backend-разработчик

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

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

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

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

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

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

Вопрос №1 в том, каким образом лучше всего организовать подсчет и хранение такой статистики?

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

Вопрос №2 нормально ли текущее существующее решение. Можно ли с ним будет работать далее?

Заранее спасибо!
  • Вопрос задан
  • 699 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы