概述目标:通过TTL将过期数据自动删除或移动到低成本存储,并使用StoragePolicy实现冷热分层,降低成本同时保障查询效率。适用:时序/日志数据、长期保留与分层访问场景。核心与实战存储策略定义:<storage_configuration> <disks> <fast> <path>/data/fast/</path> </fast> <cold> <path>/data/cold/</path> </cold> </disks> <policies> <hot_cold> <volumes> <hot> <disk>fast</disk> </hot> <cold> <disk>cold</disk> </cold> </volumes> </hot_cold> </policies> </storage_configuration> 表与TTL:CREATE TABLE logs ( ts DateTime, level String, message String ) ENGINE = MergeTree ORDER BY (ts) TTL ts + INTERVAL 30 DAY DELETE, ts + INTERVAL 7 DAY TO DISK 'cold' SETTINGS storage_policy='hot_cold'; 手动迁移分区:ALTER TABLE logs MOVE PARTITION '2025-11-26' TO DISK 'cold'; 示例验证TTL与分层:SELECT partition, name, disk_name FROM system.parts WHERE table='logs' ORDER BY partition; 清理观察:SELECT * FROM system.part_log ORDER BY event_time DESC LIMIT 20; 验证与监控资源与空间:观察`system.disks`与`system.parts`空间占用;确保移动后热盘压力下降。查询性能:热数据保留在fast盘;冷数据查询可接受较高延迟。TTL执行:确认`TTL`任务周期执行;避免过期数据堆积。常见误区未配置storage_policy导致`TO DISK`无效;需指定策略。TTL仅在合并过程中执行;合并不足时清理延迟,需要调整合并设置或手动触发。将全部数据移至冷盘导致热点查询慢;需按访问模式分层。结语通过TTL与存储策略可实现ClickHouse数据的自动分层与清理,在控制成本的同时维持热点查询性能。

发表评论 取消回复