我是靠谱客的博主 会撒娇狗,最近开发中收集的这篇文章主要介绍Clickhouse为什么这么快?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一说到Clickhouse,大家都知道它非常快,那么CH为什么这么快,是因为使用了向量化、列式数据库还是其它。下面我们一起来探索它的奥秘。(《ClickHouse原理解析与应用实践》总结)

 

1、硬件方面

Clickhouse会在内存中进行Group By,并使用HashTable装载数据。与此同时,CH对于CPU L3级别的缓存也特别在意,因为一次L3级别缓存的失效都会带来70~100ns,积少成多。一个32G,则可能会浪费5亿次/秒的运算。也正是因为如此,CH能在基准查询中做到1.75亿次/秒的数据扫描能力

 

2、算法方面

常量方面,CH使用了Volnisky算法;非常量,则使用CPU的向量化执行SIMD来优化;正则使用re2和hyperscan算法。

 

3、应景优化

CH会在不同的场景使用不同的算法。例如,在去重函数uniqCombined中,会根据数据量选择不同的算法:数据量比较少的时候,会选择使用Array来保存;数据量中等的时候,使用HashSet;数据量很大的时候,会使用HyperLogLog算法。

 

4、向量化

CH使用向量化执行。SIMD被广泛地应用于文本转换、数据过滤、数据解压和JSON转换等场景。相对于单纯使用CPU,利用寄存器暴力优化也算是一种降维打击

 

5、持续测试和持续改进

一个好的产品,肯定是能很好应用于各种场景的。CH由于拥有Yandex的天然优势,经常会使用真实数据来进行测试,尝试使用于各个场景。也因此获得了快速的版本更新换代,基本维持在一个月一更新。

最后

以上就是会撒娇狗为你收集整理的Clickhouse为什么这么快?的全部内容,希望文章能够帮你解决Clickhouse为什么这么快?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部