170 похожих чатов

Всем привет проблема такая - необходимо формировать отчеты по определенным дням,

в отчете часть показателей является статическими, часть показателей динамическими
объем данных относительно большой (пара терабайт), поэтому выборка динамических показателей занимает львинную долю времени

как пример - пользователь может создавать форум, создавать обсуждения в рамках форумов, оставлять комментарии в рамках обсуждений
при выгрузке отчета есть статические показатели (ФИО пользователя, названия форума, описание обсуждения и т.д.) и есть динамические - количество форумов, количество обсуждений, количество комментариев и т.д.

есть отдельный сервис который занимается формированием отчета и он подписан на события в kafke (создание/изменение форума, обсуждения, комментария), события он записывает в базу, по которым и формирует отчет
проблема в том, что отчет формируется по дням (администратор может указать период формирования отчета) и создать какую-то мат вьюху не получится
была мысль делать агрегацию (по сути сумма всех событий за какой-то период) динамических показателей по дням и потом их просто группировать вместе за определенный срок при формировании отчета, но тут возникает такая проблема, что обновлять агрегаты этих динамических показателей по дням не так-то просто и выглядит это как велосипед

как лучше решить данную задачу? хотелось бы просто понять вектор движения

3 ответов

19 просмотров

Вы, кажется, просите OLAP-движок. Возьмите условный кликхаус и делайте свои выборки за вменяемое время.

Etki
Вы, кажется, просите OLAP-движок. Возьмите условны...

Кстати в кликхаусе materialized view обновляется автоматически, может быть удобно в вашем кейсе Materialized views in ClickHouse are implemented more like insert triggers. If there’s some aggregation in the view query, it’s applied only to the batch of freshly inserted data. Any changes to existing data of source table (like update, delete, drop partition, etc.) does not change the materialized view. https://clickhouse.com/docs/en/sql-reference/statements/create/view/

Если отчётов формируется много, то смотреть отдельную субд под олап. Если немного и перформанс олтп от них не страдает, то забить. Ну, если, конечно сам запрос уже оптимизирован :)

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта