用途:面向 ClickHouse 的存储优化,覆盖压缩、TTL、分层存储、部件管理与磁盘空间回收。
主要能力与用法: 压缩编解码器:默认 LZ4,速度快、压缩中等;ZSTD(level) 压缩更好但更慢,级别 1-22,3 为常用默认;Delta + ZSTD 适合时间序列单调数据;DoubleDelta 适合时间戳与计数器;Gorilla 适合浮点 gauge 指标;T64 适合小范围整数列。按列设置:ALTER TABLE t MODIFY COLUMN col TYPE UInt32 CODEC(Delta, ZSTD(3));原地改编解码器:ALTER TABLE t MODIFY COLUMN col CODEC(Delta, ZSTD(3))。 TTL 策略:表级 ALTER TABLE t MODIFY TTL event_time + INTERVAL 90 DAY;列级 ALTER TABLE t MODIFY COLUMN old_col TTL event_time + INTERVAL 30 DAY;移动到卷 TTL event_time + INTERVAL 7 DAY TO VOLUME 'cold';删除 TTL event_time + INTERVAL 365 DAY DELETE;监控 TTL 合并 system.merges WHERE is_ttl_merge = 1。 分层存储:在 config.xml 的 <storage_configuration> 定义 hot(SSD)→warm(HDD)→cold(S3);移动规则 TTL event_time + INTERVAL 7 DAY TO DISK 'hdd';查看磁盘 system.disks,卷 system.storage_policies。 部件管理:监控部件数 SELECT count() FROM system.parts WHERE active AND database = 'db' AND table = 't';每分区超过 300 个部件会降低性能;分离部件查看 system.detached_parts,用 DROP DETACHED PART 清理;单部件目标 1-10GB。 磁盘空间回收:DROP PARTITION 按时间批量删除;TRUNCATE TABLE 清空整表;检查分离部件与临时文件等孤立数据;系统表可能变大,应为 query_log、trace_log 等设置 TTL。磁盘满恢复流程需加载 troubleshooting 技能。
限制:资料未提供具体版本要求、权限要求与性能基准,实际效果取决于数据特征与集群配置。