/ 3 …) query_log_1 query_thread_log_3 are results of Clickhouse upgrades. When a new version of Clickhouse starts and discovers that a system log table’s schema is incompatible with a new schema, then Clickhouse renames the old *_log table to the name with the prefix and creates a table with the new schema. You can drop such tables if you don’t need such historic data
Сделал запрос
show tables from system
В результате 2365 таблиц. Суффикы у некоторых таблиц больше 500, например, trace_log_540. Т.е это не есть результат обновления CH.
Как я понял drop table работает только с одной таблицей. Может есть возможность дропнуть все старые за раз?
clickhouse-client -mn -q "SELECT concat('DROP TABLE system.',name,' NO DELAY;') FROM system.tables WHERE database='system' AND match(name, '_[0-9]+$')" | clickhouse-client -mn --echo
_540 это как то дофига =) такое ощущение что у вас там XML определение trace_log и metadata/system/trace_log.sql по структуре сильно расходятся в части ENGINE или TTL
И они продолжают увеличиваться. Вот настройка из XML ` <trace_log> <database>system</database> <table>trace_log</table> <engine>ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY (event_time) TTL event_date + INTERVAL 14 DAY DELETE SETTINGS ttl_only_drop_parts=1 </engine> <flush_interval_milliseconds>7500</flush_interval_milliseconds> </trace_log> `
а что лежит в /var/lib/clickhouse/metadata/system/trace_log_XX.sql ? какая версия clickhouse?
ATTACH TABLE _ UUID '8281452a-ad50-4805-8281-452aad509805' ( event_date Date, event_time DateTime, event_time_microseconds DateTime64(6), timestamp_ns UInt64, revision UInt32, trace_type Enum8('Real' = 0, 'CPU' = 1, 'Memory' = 2, 'MemorySample' = 3, 'MemoryPeak' = 4), thread_id UInt64, query_id String, trace Array(UInt64), size Int64 ) ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY event_time TTL event_date + toIntervalDay(14) SETTINGS ttl_only_drop_parts = 1, index_granularity = 8192
странно, я думал что TTL будет в trace_log.sql и не удет trace_log_XX.sql как то странно обрабатывается <engine> из XML какая версия clickhouse?
https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-system-tables-eat-my-disk/ Ты по этому гайду сделал ?
ну как тупой вариант это добавить ручками TTL + SETTINGS в trace_log.sql и рестартовать сервер. посмотрев не создалась ли trace_log_XX
Не понимаю, что не так. В конфиге: <metric_log> <database>system</database> <table>metric_log</table> <engine> ENGINE = MergeTree PARTITION BY (event_date) ORDER BY (event_date, event_time) TTL event_date + INTERVAL 14 DAY DELETE SETTINGS ttl_only_drop_parts = 1, index_granularity = 8192 </engine> <flush_interval_milliseconds>7500</flush_interval_milliseconds> <collect_interval_milliseconds>1000</collect_interval_milliseconds> </metric_log> ======================================================= Меняю ENGINE с настройками один в один как config.xml в файле metric_log.sql Перезагружаю сервер. В итоге плодятся файлы ENGINE в metric_log.sql стал таким: ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY (event_date, event_time) SETTINGS index_granularity = 8192 =================================== metric_log_0.sql ENGINE = MergeTree PARTITION BY (event_date) ORDER BY (event_date, event_time) TTL event_date + INTERVAL 14 DAY DELETE SETTINGS ttl_only_drop_parts = 1, index_granularity = 8192 ================================================== metric_log_1.sql ENGINE = MergeTree PARTITION BY event_date ORDER BY (event_date, event_time) TTL event_date + toIntervalDay(14) SETTINGS ttl_only_drop_parts = 1, index_granularity = 8192 Все последующие mextric_log_xx.sql такие-же как и metric_log_1.sql Пока пришлось остановить вообще логирование.
А версию меняли сервера?
смотрите /var/log/clickhouse-server/clickhouse-server.err.log там должна быть причина с warning скорее всего grep -r metric_log_1 /var/log/clickhouse-server/ что показвыает?
Обсуждают сегодня