一、clickhouse为什么如此快
1)优秀的代码,对性能的极致追求)优秀的代码,对性能的极致追求
clickhouse是CPP编写的,代码中大量使用了CPP最新的特性来对查询进行加速。
2)优秀的执行引擎以及存储引擎)优秀的执行引擎以及存储引擎
clickhouse是基于列式存储的,使用了向量化的执行引擎,利用SIMD指令进行处理加速,同时使用LLVM加快函数编译执行,
当然了Presto也大量的使用了这样的特性。
3)稀疏索引)稀疏索引
相比于传统基于HDFS的OLAP引擎,clickhouse不仅有基于分区的过滤,还有基于列级别的稀疏索引,这样在进行条件查询的时
候可以过滤到很多不需要扫描的块,这样对提升查询速度是很有帮助的。
4)存储执行耦合)存储执行耦合
存储和执行分离是一个趋势,但是存储和执行耦合也是有优势的,避免了网络的开销,CPU的极致压榨加上SSD的加持,每秒
的数据传输对于网络带宽的压力是非常大的,耦合部署可以避免该问题。
5)数据存储在)数据存储在SSD,极高的,极高的iops。。
二二 clickhouse如何完成一次完整的select
这里有个概念需要澄清一下,clickhouse的表分为两种,一种是本地表另一种是分布式表。本地表是实际存储数据的而分布式表
是一个逻辑上的表,不存储数据的只是做一个路由使用,一般在查询的时候都是直接使用分布式表,分布式表引擎会将我们的
查询请求路由本地表进行查询,然后进行汇总最终返回给用户。
2)索引在查询)索引在查询
一、clickhouse为什么如此快
1)优秀的代码,对性能的极致追求)优秀的代码,对性能的极致追求
clickhouse是CPP编写的,代码中大量使用了CPP最新的特性来对查询进行加速。
2)优秀的执行引擎以及存储引擎)优秀的执行引擎以及存储引擎
clickhouse是基于列式存储的,使用了向量化的执行引擎,利用SIMD指令进行处理加速,同时使用LLVM加快函数编译执行,
当然了Presto也大量的使用了这样的特性。
3)稀疏索引)稀疏索引
相比于传统基于HDFS的OLAP引擎,clickhouse不仅有基于分区的过滤,还有基于列级别的稀疏索引,这样在进行条件查询的时
候可以过滤到很多不需要扫描的块,这样对提升查询速度是很有帮助的。
4)存储执行耦合)存储执行耦合
存储和执行分离是一个趋势,但是存储和执行耦合也是有优势的,避免了网络的开销,CPU的极致压榨加上SSD的加持,每秒
的数据传输对于网络带宽的压力是非常大的,耦合部署可以避免该问题。
5)数据存储在)数据存储在SSD,极高的,极高的iops。。
二二 clickhouse如何完成一次完整的select
这里有个概念需要澄清一下,clickhouse的表分为两种,一种是本地表另一种是分布式表。本地表是实际存储数据的而分布式表
是一个逻辑上的表,不存储数据的只是做一个路由使用,一般在查询的时候都是直接使用分布式表,分布式表引擎会将我们的
查询请求路由本地表进行查询,然后进行汇总最终返回给用户。
2)索引在查询)索引在查询
一、clickhouse为什么如此快
1)优秀的代码,对性能的极致追求)优秀的代码,对性能的极致追求
clickhouse是CPP编写的,代码中大量使用了CPP最新的特性来对查询进行加速。
评论0
最新资源