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

Добрый день, подскажите пожалуйста каким образом делают аналитику когда счет

количества данных в БД идет уже на миллионы?

Есть приложение, которое, можно сказать, считает клики - в день этих кликов может быть до миллиона. Технически клик в БД имеет много различных колонок с данными.
По всем этим данным нужно делать аггрегации, фильтрации, считать количество кликов, количество уникальных кликов и еще с десяток всяких значений по формулам по запросу пользователя.
Если пользователь хочет посмотреть данные сразу за месяц или несколько, то записей по идее может быть пару десятков миллионов.
Как при этих условиях делать real-time аналитику? Если тупо считать в postgres со всеми возможными индексами и тд, то получается довольно медленно, потому что если, например, юзер выбирает сортировку по како-нибудь агрегированному параметру, то базе нужно будет сагрегировать тупо все записи и отсортировать их, пагинация тут не поможет. Materialized view как тут применить я тоже не могу прикинуть, потому что всяких агрегаций и фильтраций слишком много, под каждую отдельно materialized view не сделаешь.

Подскажите советом, как в таких случаях обычно делают? Может я упускаю какую-нибудь крутую возможность psql или что-то еще?

1 ответов

4 просмотра

clickhouse - почитай, посмотри

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
10
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Карта сайта