压缩与低基数编码(ClickHouse 示例)
压缩与低基数编码(ClickHouse 示例)
-- 低基数列用字典编码,显著缩小体积
ALTER TABLE logs.events MODIFY COLUMN service LowCardinality(String);
-- 有序数值列用差分编码 + ZSTD
ALTER TABLE logs.events MODIFY COLUMN value CODEC(Delta, ZSTD(3));
-- 查看表与分区占用,定位优化目标
SELECT table, formatReadableSize(sum(bytes_on_disk)) AS size
FROM system.parts WHERE active
GROUP BY table ORDER BY sum(bytes_on_disk) DESC LIMIT 10;| 冷热分层 | 过期数据下沉到低成本存储:ES 可搜索快照、ClickHouse TO VOLUME、对象存储备份 |
|---|---|
| 副本策略 | 按可用性要求定副本数:搜索与日志类经常 1 副本 + 快照;主交易库保留更高冗余 |
| 清理 | TTL/ILM 按合规与业务价值设保留期,"默认永久保留"是成本膨胀的常见来源 |
| 监控 | 按表/索引维度监控占用与增长,为预算与扩容提供依据 |
压缩率与查询开销要平衡:过高压缩等级增加 CPU 与解压时间,报表类查询延迟敏感时先小范围对比。