Какую базу данных мне следует использовать для данных временных рядов такого типа? - PullRequest
0 голосов
/ 15 января 2020

У меня есть приложение с несколькими таблицами, такими как users, stories, comments, которое состоит из таких полей, как id, rating, text, is_deleted и так далее.

Имеется> 145 млн. Комментариев,> 7 млн. Историй и> 2,5 млн. Пользователей.

Для каждого столбца в каждой таблице у меня есть другая таблица для хранения версий, например comments rating имеет таблицу, определенную следующим образом:

item_id uint64
timestamp int64
value int32

Есть также те же таблицы для истории столбцов других типов, таких как bool или string.

Теперь это работает на postgres .

Чего я хочу достичь : эффективно запрашивать данные, распределять их по дням и часам и собирать другую статистику по моим данным.

Проблема заключается в том, что postgres действительно медленный, например, требуется> 8 часов для распределения комментариев по дням, а запросы типа select count(*) where timestamp > x and timestamp < y также медленные, потому что postgres выбирает все значения и не имеет индекса для подсчета.

Вопрос : Какая база данных более удобна для данных такого рода? Слышал, что есть приливы, клики и другие, у меня нет опыта работы с ними, поэтому мне трудно выбрать.

1 Ответ

1 голос
/ 15 января 2020

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...