184 похожих чатов

Приветствую. вопрос: Есть таблица: CREATE TABLE test_table (

partition_date Date,
value Float64
) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/test_table',
'{replica}') PARTITION BY partition_date ORDER BY (partition_date, value) TTL partition_date + toIntervalMonth(1);

Я ожидал, что в таблице будут удаляться данные старше чем месяц назад (по колонке partition_date), но

select min(t), max(t)
from test_table;

Выдает

+----------+----------+
|min(t) |max(t) |
+----------+----------+
|2019-12-30|2020-12-06|
+----------+----------+

В логах ничего не видно, в какую сторону копать?

5 ответов

5 просмотров

удаление старых данных асинхронный процесс происходит во время background процессов либо во время background merge (после вставки новых данных идет слияние со старыми) либо во время scheduled background tasks (раз в сутки по умолчанию) https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/#mergetree-query-clauses merge_with_ttl_timeout — Minimum delay in seconds before repeating a merge with TTL. Default value: 86400 (1 day). если нет вставки, то удаление раз в сутки

менять дефолтные настройки не советую если не понимаете что делаете можете увеличить нагрузку на чтение \ запись с диска необосновано

Denis Goihburg- Автор вопроса
Slach [altinity]
удаление старых данных асинхронный процесс происх...

Оно так уже пару месяцев живет. Запись в таблицу раз в сутки

PARTITION BY partition_date версия КХ ? проблема в дизайне TTL , он проверяет 1 одну партицию за раз, чтобы не заниматься бесконечными TTL, потому что пока удаляешь из одной партиции, некоторые записи состарятся в другой, т.е. можно настроить в новых версиях КХ. но в вашем случае логично дропать партии целиком, а не TTL-ить по записям alter table test_table modify settings ttl_only_drop_parts=1

Denis Goihburg- Автор вопроса
Denny [Altinity]
PARTITION BY partition_date версия КХ ? проблема...

VERSION_FULL ClickHouse 20.3.11.97| Я посмотрю, спасибо

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
А чем вам питонисты не угодили?😂
.
79
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
4
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Карта сайта