[SQL] ClickHouse 为什么如此之快?

Posted by Akilis on 03 Jul, 2024

Contents

原理

查询流程

列式存储、多级索引,查询时根据层层索引找到remark文件,按offset读取磁盘压缩块Block,解压缩再按行offset提取列值。


MergeTree

采用LSM存储思想,可基于SkipList数据结构在内存存储k-v索引值对,使用SSTable在磁盘存储数据,异步合并数据part,支持大数据量并发写入,适合大数据数仓构建。

优化

Sample

数据集预览、ML采样场景,改写引擎查询,使用子查询抽取表时加 Group BySampleLIMITOrder By rand() 限制数据量,避免失败,提升性能,提升均匀性。

Global Join

Local Query

案例

XTD

时间累计函数,例如计算“近x小时累计”,“0点截止到当前”,“近x日累计”,“月初截至当日”等可累加指标。

性能治理

Inspiration

ML

成本因素

存储计算分离


   SQL    SCCS    OLAP    BI   

 Share on: Email