SuperAPI AI 工具集

clickhouse-schema-design

数据与分析

查看项目

更新于 10-16 02:35

技能介绍

用途:在创建或修改 ClickHouse 表时提供 Schema 设计规则,帮助实现十亿行表上的亚秒级查询、相比原始数据 10 倍以上压缩、零维护的数据保留与分层存储,以及只扫描不到 1% 数据而非全表扫描的查询。

主要能力:涵盖核心规则、引擎选择、ORDER BY 选择、PARTITION BY 指南、数据类型优化、TTL 配置、完整建表示例、反模式、验证查询和故障排查。

核心要点:ORDER BY 决定查询性能,最常过滤的列放前面、低基数先于高基数;PARTITION BY 用于数据管理而非查询加速;使用尽可能小的数据类型;唯一值少于 1 万时用 LowCardinality(String);尽量避免 Nullable,改用 DEFAULT;PRIMARY KEY 可为 ORDER BY 的前缀。ORDER BY 通常 3-5 列。

引擎选择:MergeTree 用于追加型事件与日志;ReplacingMergeTree 用于去重与 upsert;SummingMergeTree 用于预聚合计数;AggregatingMergeTree 用于复杂聚合;CollapsingMergeTree 用于可变行。

使用方式:按资料中的规则建表,例如 ORDER BY (tenant_id, event_date, user_id)、PARTITION BY toYYYYMM(event_date)、TTL event_date + INTERVAL 12 MONTH DELETE、SETTINGS index_granularity = 8192,并可用 system.parts、system.columns、EXPLAIN 等验证查询做诊断。

适用场景:分析型事件表、日志表、多租户数据、需要保留策略与分层存储的表。

限制:资料要求应用 Schema 变更(ALTER TABLE、重建表)前须获得用户确认;引擎示例与物化视图详见 clickhouse-materialized-views 技能;其他未提供信息暂缺。