用途:为 ClickHouse(v24.4+)提供规范化的表结构设计、压缩选择与性能优化指导,覆盖 ClickHouse Cloud(SharedMergeTree)与自托管(ReplicatedMergeTree、MergeTree)部署。
主要能力:
- ORDER BY 键选择:限制 3-5 列,低基数列在前,PRIMARY KEY 须为 ORDER BY 前缀。
- 压缩编解码器:时间戳用 DoubleDelta,浮点用 Gorilla,整数计数器用 T64,缓慢变化整数用 Delta,低基数字符串用 LowCardinality;读密集可用 LZ4 替代 ZSTD。Delta/DoubleDelta 与 Gorilla 组合默认被 allow_suspicious_codecs 阻止,应各自独立使用。
- PARTITION BY:用于数据生命周期管理而非查询优化,按时间单位分区,总分区数控制在 1000 以内,每分区 1-300 个 part。
- 性能加速:投影、物化视图、字典(dictGet 替代 JOIN)。
- 删除策略:DROP PARTITION 最快,其次 DELETE IN PARTITION、ALTER TABLE DELETE;DELETE FROM 轻量删除会留下 _row_exists=0 幽灵行,禁止用于写入管道。所有删除变更建议 SETTINGS mutations_sync = 1。
- 审计脚本:clickhouse-client --multiquery < scripts/schema-audit.sql,检查分区 part 数、压缩比、查询模式、复制延迟与内存使用。
使用方式:按“定义 ORDER BY → 选择压缩 → 配置分区 → 添加加速器 → 审计验证 → 用 COMMENT 记录”的流程执行。表与列必须写 COMMENT 作为唯一事实来源。Python 集成推荐官方 clickhouse-connect,不建议 clickhouse-driver。
适用场景:设计交易类等宽表模式、优化现有 ClickHouse 模式、配置 TTL 与数据清理、搭建星型模型字典。
限制:资料未提供具体收费、价格与平台支持信息;部分性能数字(如 JOIN 180x、Mutation 1700x 改进)为资料所述基准,实际效果需自行验证。