|
Как правильно использовать Clickhouse?
|
|||
---|---|---|---|
#18+
Вот было скучно нам, решили у себя на проекте стату в нем хранить. Вынесли всю билеберду из легаси в отдельный микросервис. Новый сервис никуда не ходит, только слушает все в RabbtMq и складывает себе в таблички в клике (называем их "сырые"). При этом в самом сервисе никакой бизнес-логики особо нет. Только получение данных из RMQ и инсертинг их в CH. Всё самое интересное происходит в Clickhouse: под каждый отчет имеется своя табличка c движком AggregatingMergeTree, которая хранит в удобном виде данные. Агрегируем по дата + сущность (где-то это пользователь, где-то файл, где-то сайт). Собственно эти агрегации подписаны на "сырые" таблицы при помощи materialized-view. В таблицах с агрегацией, естественно, используем агрегатные функции (храним тут данные в промежуточном состоянии, полученном функциями -State). В этом же сервисе есть Rest-API которая просто читает данные из агрегаций и отдает (тут уже используем функции Merge для подсчета count/uniq/sum по заданным интервалам). Один коллега хейтит этот сервис за то, что в нем нет бизнес-логики. Так в общем-то что еще для счастья надо? Все что описал, сам расколупал в интернете, но есть подозрения что клик может еще чем-то удивить. ... |
|||
:
Изменено: 11.02.2025, 19:41 - Hett
Нравится:
Не нравится:
|
|||
12.02.2025, 08:14 |
|
Как правильно использовать Clickhouse?
|
|||
---|---|---|---|
#18+
Вы отталкиваетесь не от вашей потребности, а от инструмента, что является не совсем верным подходом. Собственно, все ваши метания происходят от скуки, о чём вы в самом начале сказали. А Prometheus-Grafana не подойдёт для хранения вашей статы в виде агрегированных метрик? Нужен именно CH? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2025, 17:49 |
|
|
start [/forum/topic.php?fid=31&gotolast=1&tid=30343]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 30ms |
total: | 165ms |
0 / 0 |