нет, и вообще ужасный пример. Он считает чушь. Срендее от среднего, вы где такой ад нашли?
в гугле попался сайт, вот https://quoeamaster.medium.com/know-your-datas-time-to-live-in-clickhouse-4-essential-settings-about-ttl-627e20c6d977
понятно, в общем вам что нужно? какая задача/цель?
У меня таблица такого вида. Для подсчета сообщений юзеров, одно сообщение - 1 запись, и хочется старые записи сгруппировывать по toYYYYMMDD(event_time), chat_id, user_id а is_bad_word и amount приводить в sum()
https://kb.altinity.com/altinity-kb-queries-and-syntax/ttl/ttl-group-by-examples/ PARTITION BY toYYYYMM(ts) ORDER BY (key, toStartOfDay(ts)) TTL ts + interval 30 day GROUP BY key, toStartOfDay(ts) SET value = sum(value) ts = min(toStartOfDay(ts))
Ого, спасибо огромное за помощь. Буду пробовать
если бы разговаривали не картинками а текстом, я бы сделал конкрентый пример под вашу таблицу
CREATE TABLE activity_test ( id UUID, event_time DateTime64(6), chat_id Int64, user_id Int64, is_bad_word UInt8, content_type String, amount Int32 DEFAULT 1 ) ENGINE = MergeTree ORDER BY event_time SETTINGS index_granularity = 8192; Прошу прощения, вот
а что кстати про content_type String и id ? типа любой рандомный будет после схлопывания?
чтобы отдельными строками разные типы остались
CREATE TABLE activity_test ( id UUID, event_time DateTime64(6), chat_id Int64, user_id Int64, is_bad_word UInt64, content_type String, amount Int32 DEFAULT 1 ) ENGINE = MergeTree PARTITION BY toYYYYMM(event_time) ORDER BY (content_type,chat_id,user_id,toStartOfDay(event_time) ) TTL toDateTime(event_time) + interval 10 day GROUP BY content_type,chat_id,user_id,toStartOfDay(event_time) SET is_bad_word = sum(is_bad_word), amount = sum(amount), event_time = min(toStartOfDay(event_time)), id = min(toUUID('00000000-0000-0000-0000-000000000000'));
Огромная Вам благодарность! Всё идеально работает, без Вас бы не справился так быстро. Единственное изменил id = min(toUUID('00000000-0000-0000-0000-000000000000')); на id = min(id); По идее так должно быть?
ну это вам решать. у вас было 10 записей, с разными id (10 до 19 например), id=min(id) будет 10, мне кажется логичным положить туда несуществующий id, например id=min(-1) (или Null).
Обсуждают сегодня