данные старше недели мержились (загрублялись) по часу, а старше месяца по шесть часов, изначально данные в таблице разбиваются по 5 минут)? Я так понимаю сейчас это можно сделать двумя способами:
1. Сделать несколько таблиц по времени и перетаскивать туда данные с помощью mv
2. Делать загрубление через group by в ttl. Мне этот вариант нравится тем, что у нас в итоге одна таблица и не надо усложнять логику селекта, но что делать в случае если захочется поменять интервалы загрубления? Я так понял, что придется пересоздавать таблицу с новым order by?
Также интересно, есть ли еще какие-то методы прореживать данные?
Вариант с MV прост-понятен-надежен Вариант с TTL более заморочен, меньше пользователей больше потенциальных проблем https://kb.altinity.com/altinity-kb-queries-and-syntax/ttl/ttl-group-by-examples/ > Также интересно, есть ли еще какие-то методы прореживать данные? Можно подумать над экзотикой в виде наличие доп колонки с TTL на этой колонке ts DateTime, xx DEFAULT toStartOfMinute(ts) TTL ts + INTERVAL 7 DAY xxx DEFAULT toStartOfHour(ts) TTL ts + INTERVAL 31 DAY xxxx DEFAULT toStartOfInterval(ts, 6 HOUR) PRIMARY KEY (...., key_x) ORDER BY (...., key_x, xxxx, xxx, xx)
Обсуждают сегодня