ClickHouse 的核心特性?

Johngo学长 ClickHouse 47
  • 列存储:列存储是指仅从存储系统中读取必要的列数据,无用列不读取,速度非常快。ClickHouse采用列存储,这对于分析型请求非常高效。一个典型且真实的情况是,如果我们需要分析的数据有50列,而每次分析仅读取其中的5 列,那么通过列存储,我们仅需读取必要的列数据,相比于普通行存,可减少10倍左右的读取、解压、处理等开销,对性能会有质的影响。
  • 向量化执行:在支持列存的基础上,ClickHouse 实现了一套面向向量化处理的计算引擎,大量的处理操作都是向量化执行的。相比于传统火山模型中的逐行处理模式,向量化执行引擎采用批量处理模式,可以大幅减少函数调用开销,降低指令、数据的 Cache Miss,提升 CPU 利用效率。并且ClickHouse 可利用 SIMD 指令进一步加速执行效率。这部分是 ClickHouse 优于大量同类 OLAP 产品的重要因素。
  • 编码压缩:由于 ClickHouse 采用列存储,相同列的数据连续存储,且底层数据在存储时是经过排序的,这样数据的局部规律性非常强,有利于获得更高的数据压缩比。此外,ClickHouse 除了支持 LZ4、ZSTD 等通用压缩算法外,还支持 Delta、DoubleDelta、Gorilla 等专用编码算法,用于进一步提高数据压缩比。
  • 多索引:列存用于裁剪不必要的字段读取,而索引则用于裁剪不必要的记录读取。ClickHouse支持丰富的索引,从而在查询时尽可能的裁剪不必要的记录读取,提高查询性能。

回复

我来回复
  • 暂无回复内容

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部