Илья, вся проблема состоит в том что нет конкретных запросов. Сейчас один пользователь хочет фильтровать по атрибуту А1, второй хочет узнать сколько было данных в определенный диапазон(например за последний месяц), другой делает выборку по комбинации полей + дата.
Для других задач нужно агрегировать по определенным правилам, порядка 30 типов различных агрегаций, со всевозможной фильтрацией.
zavodp, план запроса я смотрел - при чтение индексы используются. Оптимизировал некотрые запросы, путем добавления составного индекса.
Дело в том что на каждый запрос фильтрации , по мимо самих данных, необходимо отдавать общий count для всей выборки.
Делали подобное, но со связкой clickhouse + hbase. Работало быстро, но и ресурсов сжирало немерено. Думаю над тем что бы использовать MongoDB как key-value.
Да смотрели, работает бысто, но есть свои нюансы при работе с этой БД.
Клик это про аналитику, поэтому нужно хорошее OLTP решение. Думал над тем чтобы использовать MongoDB, с прехешем для униикальных ключей, на уровне приложения.
Иван Шумов, долго выполняется группировка по определенным полям.
Например, запрос агрегации - фильтрация выдает ~ 17млн записей(30сек) + операция агрегации, по сути подсчет count для агрегационной группы(40сек).
А то может и дольше.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Как я понимаю это расчет для целевых запросов? Весь массив всевозможных комбинаций входных параметров невозможно покрыть(и это неправильно).