после появления данных в партиции? То есть если случайно вставить "протухшие" данные в таблицу, то они сначала запишутся в новую партицию, которая потом стриггерит слияние, результатом которого станет удаление этих протухших данных? Не было бы более эффективно фильтровать строки по TTL-у сразу на входе и не писать их на диск?
по моему сразу удаляются, зависит от настройки optimize_on_insert и она к сожалению true по умолчанию
Имеется ввиду "к сожалению false"?
нет, она true и это замедляет инсерты до 3х раз
версия 21.7.5.29, optimize_on_insert стоит в true, но видимо не срабатывает - наблюдается именно вышеописанное поведение
Достаточно ли инфы для того, чтобы завести багу в треккере, или ещё что-нибудь нужно?
да, только если сможете воспроизвести create table testTTL(d Date, a Int64) Engine = MergeTree order by a TTL d + interval 1 month; insert into testTTL select today()-60, 1 from numbers(10); select count() from testTTL ┌─count()─┐ │ 0 │ └─────────┘ set optimize_on_insert = 0; ----------<<<<<<<<<<<<--- insert into testTTL select today()-60, 1 from numbers(10); select count() from testTTL ┌─count()─┐ │ 10 │ └─────────┘
Обсуждают сегодня