пожалуйста.
Создаю таблицу:
create table test
(
_id UInt64,
timecode DateTime,
value Float32,
condition UInt8
)
engine = MergeTree()
PARTITION BY (condition, toStartOfInterval(timecode, INTERVAL 5 minute))
ORDER BY (id, timecode)
TTL timecode + INTERVAL 5 minute DELETE WHERE condition != 1,
timecode + INTERVAL 10 minute DELETE WHERE condition = 1
SETTINGS ttl_only_drop_parts = 1;
Я ожидаю, что для строк с condition != 1 будут удаляться партиции старше 5 минут, а для строк с condition = 1 - партиции старше 10 минут. Для этого я и разбил на партиции (condition, toStartOfInterval(timecode, INTERVAL 5 minute)).
Но получилось, что удаляются партиции по условию timecode + INTERVAL 10 minute, остальные условия игнорируются.
Что я делаю не так?
Вопрос еще актуален, подскажите, куда копать, пожалуйста
Не трогайте TTL WHERE они кривые пишите просто TTL ts + toIntervalDay(if(cond,1,30)) https://github.com/ClickHouse/ClickHouse/issues/45608 https://github.com/ClickHouse/ClickHouse/issues/17303
Обсуждают сегодня