目前在大数据相关的业务中,Doris和ClickHouse的使用频率非常高。在本站我们已经做了很多关于Doris的介绍了,这里我们介绍下ClickHouse相关的信息。
ClickHouse介绍
ClickHouse是一个开源的,用于联机分析(OLAP)的列式数据库管理系统(DBMS-database manager system)。我们可以把他简单的看做是一个数据库。但是他是一个适合OLAP场景的数据库。所以ClickHouse数据库的存储方式也是列存储。同时既然是数据库,所以他可以执行sql查询,所以结合面向列存储,同时使用SQL查询,所以可以近实时的生成相关的报表,适合应用在各种大数据的场景里面。
ClickHouse特征
clickhouse既然是一款面向列式存储的数据库,那么他就有自己的特征,例如:
支持DBMS功能 列式存储 数据压缩 向量化执行引擎 标准sql查询 分布式 数据分片和分布式查询
下面我们挨个介绍下
支持DBMS语句
在clickhouse里面,我们把他看作是数据库,大部分的DBMS相关的功能在clickhouse里面都支持,例如:
1、支持DDL语句动态修改库表schema 2、支持DML语句对库表进行增删改查 3、管理多个数据库节点 4、实现数据库表的用户权限控制 5、实现数据的备份和恢复
列式存储
在olap场景业务中,我们要求的就是查询数据快。但是此时的数据量都是非常大的,GB级别,TB级别我们要想在毫秒级别内查询出来具体的结果,那么最好的做法就是减少数据扫描的范围和数据传输时的大小,这里列式存储就是减少数据扫描的范围,所以可以看到在大数据的场景下,各种适合olap的工具几乎都是面向列式存储的。
数据压缩
这是加快数据查询结果的另外一个因素,减少数据传输时的大小,目前ClickHouse默认使用的压缩算法是LZ4,他的压缩比是8:1。在实际的生产环境中已经够用了。如果数据量足够大,可以考虑使用ZSTD,他的性能会更好。
向量化执行引擎
向量化执行引擎主要是减少cpu的从出操作指令,是一种把重复操作的指令合并为一次并行执行用来提高查询性能的实现方式。
标准sql查询
目前在clickhouse中可以直接使用相关的sql进行查询,clickhouse兼容sql92的标准。但是有需要注意的地方就是Clickhouse里面的sql是大小写敏感的,所以在执行sql的时候一定要注意sql里面的大小写。
分布式
clickhouse从节点分布,分片分不来说都是分布式的,这里不做过多介绍
数据分片和分布式查询
clickhouse将数据进行横向切片,把不同范围的数据保存在不通的分片里面,这两在查询的时候既减少了数据的扫描范围,也更好的利用了集群的计算能力,加快了查询速度。
以上就是对clickhouse的大致介绍。
还没有评论,来说两句吧...