Clickhouse 十亿级ReplicatedMergeTree表 最新记录聚合查询优化咨询
业务背景与现有实现说明
数据基础情况
- 核心业务原表采用
ReplicatedMergeTree引擎,存量记录近10亿条,主键覆盖a、b、c三类维度字段 - 写入规则:随用户操作持续追加写入,每小时新增近百万条记录,针对每个唯一(a,b)组合追加存储最新的
updated_at时间戳 - 原表配置:按c字段做分区键,表排序键为
(a, b, updated_at) - 已建配套汇总表
tab_1_summary,用于存储每个(a,b)组合对应的最新记录信息
当前生产查询逻辑
- 核心计算需求:基于给定a、b、c组合对应的最新时间戳记录完成聚合汇总计算
- 最初设计的查询流程为通过子查询动态计算每个(a,b)对应的最大
updated_at值,再与原表关联完成聚合 - 实际生产执行流程:将上述动态子查询环节替换为直接读取
tab_1_summary获取对应updated_at值,再按a、b、c维度分组,计算x、y等指标的聚合结果 - 硬约束:现有分组逻辑受业务规则限制,无法调整
已验证的优化尝试与效果
- 曾落地基于
ReplicatedReplacingMergeTree引擎搭配物化视图的优化方案 - 实际运行表现:受表数据规模大、持续高频写入的特性影响,查询时搭配
FINAL子句的执行性能反而低于现有查询逻辑
优化目标
在不调整现有分组逻辑的前提下,找到可缩短数秒级整体处理时长、更快返回查询结果的实现方案
内容的提问来源于stack exchange,提问作者calgs
相关产品推荐
相关产品推荐

