Clickhouse(四)基本概念
1. 列式存储
- 图示

- 如上图所示,列式存储对于OLAP查询场景有很多优势
- 分析场景中往往需要读大量行但是少数几个列。在行存模式下,数据按行连续存储,所有列的数据都存储在一个bloCK中,不参与计算的列在IO时也要全部读出,读取操作被严重放大。而列存模式下,只需要读取参与计算的列即可,极大的减低了IO cost,加速了查询。
- 同一列中的数据属于同一类型,压缩效果显著。列存往往有着高达十倍甚至更高的压缩比,节省了大量的存储空间,降低了存储成本。
- 不同列的数据具有不同的数据类型,适用的压缩算法也就不尽相同。可以针对不同列类型,选择最合适的压缩算法。
- 更高的压缩比意味着更小的data size,从磁盘中读取相应数据耗时更短。
- 高压缩比,意味着同等大小的内存能够存放更多数据,系统cache效果更好。
- 通过使用列存,在某些分析场景下,能够获得100倍甚至更高的加速效应。
以上总结,clickhouse对CPU的占用很可能会大于磁盘IO,因为广泛采用数据压缩的后果就是需要占用大量CPU资源进行数据压缩和解压缩。同时考虑到clickhouse本身会默认占用一般服务器CPU核数,对CPU的压力是很大的
注意,因为大量适用并行计算,大量使用数据压缩,clickhouse对于CPU资源是非常敏感的。当集群中单个节点的CPU占用到50%就会发生clickhouse性能抖动,到了70%,clickhouse的大部分查询都会卡住或者失效,所以需要密切监控CPU占用。

本文介绍了Clickhouse的基本概念,包括列式存储的优势、向量化计算的实现、表的定义、分区与分片策略以及副本和引擎的作用。列式存储降低了IO成本,提高了查询效率;向量化引擎利用SIMD指令加速计算;表、分区、分片和副本则涉及数据组织和分布;引擎选择影响数据存储和访问性能。
最低0.47元/天 解锁文章
2687

被折叠的 条评论
为什么被折叠?



