CLickHouse 入门理论学习

什么是ClickHouse? | ClickHouse Docs

本篇不属于安装使用,限于入门理论了解

开源列式数据库,主要用于数据分析(OLAP)。那么clickhouse的主要使用场景、特点以及核心概念有哪些?

自己理解:轻量级大数据仓库

场景

读多于写:适用于大量数据的分析、查询。优势不在于写和更新。

大宽表,读大量行但是少量列,结果集较小:相对于行存储字段很多,但是查询返回几个字段的情况

数据批量写入,且数据不更新或少更新:海量数据快速导入(历史数据尽量不动)

无需事务:支持不?

列式存储

既然是列示数据库,那么列式存储的优势当然要了解

相比于行式存储,列式存储在分析场景下有着许多优良的特性。

1、上面也提到的大宽表的场景(基于数据库的存储原理,说实在的不是很懂,这里作为知识点)

大概就是行存储,因为所有列的数据是统一存储,即使不用,实际查询还是查了,如果需要的列很少,效率存在浪费。

分析场景中往往需要读大量行但是少数几个列。在行存模式下,数据按行连续存储,所有列的数据都存储在一个block中,不参与计算的列在IO时也要全部读出,读取操作被严重放大。而列存模式下,只需要读取参与计算的列即可,极大的减低了IO cost,加速了查询。

2、存储成本降低

同一列中的数据属于同一类型,压缩效果显著。列存往往有着高达十倍甚至更高的压缩比,节省了大量的存储空间,降低了存储成本。

3、i/o效率高

更高的压缩比意味着更小的data size,从磁盘中读取相应数据耗时更短

4、压缩算法丰富 (具体有哪些,实际应用再研究)

自由的压缩算法选择。不同列的数据具有不同的数据类型,适用的压缩算法也就不尽相同。可以针对不同列类型,选择最合适的压缩算法

5、系统cache效果

其实和2/3/4 有相通的地方,都是数据压缩带来的有点。

高压缩比,意味着同等大小的内存能够存放更多数据,系统cache效果更好

官方数据显示,通过使用列存,在某些分析场景下,能够获得100倍甚至更高的加速效应

高吞吐写入能力

官方公开benchmark测试显示能够达到50MB-200MB/s的写入吞吐能力,按照每行100Byte估算,大约相当于50W-200W条/s的写入速度

支持分布式集群模式

ClickHouse深度揭秘 - 知乎

你可能感兴趣的:(DATAS,数据库)