Задать вопрос
@yiicoder

Какая БД лучше всего делает аггрегации?

Задача - обрабатывать сырые данные статистики.
Запросы простые аггрегации - Select SUM/AVG from group by (AGE,SEX,DAY,SOURCE). (обычно в group by параметров 10-20 для промежуточных данных). Агрегированные данные кладутся в отдельную таблицу и уже по ней делается поиск с WHERE в котором теже самые 10-20 параметров.

Сейчас всем этим делом занимается mongodb(aggregation framework), не нравится производительность. (Индексы все стоят, в память влезают, оптимизировать mongo уже явно дальше не куда)
Может есть БД более заточенная под такие задачи?
  • Вопрос задан
  • 559 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
ElasticSearch
https://www.elastic.co/guide/en/elasticsearch/refe...
https://www.elastic.co/guide/en/elasticsearch/refe...

По собственному опыту скажу, что очень хорошо справляется. Сейчас имеется маленький кластер с 300+ гб событий статистики, все очень шустро работает.

Вот еще несколько ссылок, дабы избежать распространенных ошибок в настройке кластера.
radar.oreilly.com/2015/04/10-elasticsearch-metrics...
https://www.loggly.com/blog/nine-tips-configuring-...
https://www.elastic.co/blog/found-optimizing-elast...

Наткнулся как раз на камень, описывающийся в этой статье:
https://www.elastic.co/blog/support-in-the-wild-my...
При настройке маппинга индекса, указывай параметр для не анализируемых полей:
"doc_values" : true
Ответ написан
Комментировать
@lPolar
data scientist
Как вариант, можно использовать Impala, Hive on Tez с Hadoop кластером. Масштабируемость будет 100%, та же CDH или HDP достаточно легко разворачивается.
Если у Вас много денег и CPU не проблема, можно использоваться Spark SQL поверх того же Hive.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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