ClickHouse 简单介绍

网友投稿 285 2022-11-22

ClickHouse 简单介绍

1: 简介

ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语音编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。

官网地址: ​​特点

2.1: 列式存储

2.1.1 采用行式存储时

一行行存储数据,一行就是对应一个对象的所有数据。

2.1.2 采用列式存储时

将一列的数据顺序排列,这样当我们查询想要的字段的时候,只需要将那一列拿出来就可以了。

2.1.3 好处

对于列的聚合,计数,求和等统计操作原因优于行式存储由于某一列的数据类型都是相同的,针对数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,提高了数据的压缩比例由于数据压缩比更好,节省了空间,对cache也有更大的发挥空间

2.2: DBMS功能

几乎涵盖了标准SQL的大部分语法,包括DDL和DML,以及各种函数,用户管理和权限管理,数据的备份和恢复。

2.3: 多样化的引擎

ClickHouse和MySQL类似,把表级的存储引擎插件化,根据表的不同需求可以设定不同的存储引擎。目前包括合并树,日志,接口和其他四大类的20多种引擎

2.4: 高吞吐写入能力

ClickHouse采用了类LSM Tree的结构,数据写入后定期在后台压缩(Compaction),通过类LSM Tree的结构,ClickHouse在数据导入时全部是顺序append写,写入后台数据段不可更改,在后台压缩时,也是多个段merge sort 后顺序写回磁盘。顺序写的特性,充分利用了磁盘的吞吐能力。

2.5: 数据分区与线程级并行

ClickHouse 将数据划分为多个partition(分区),每个分区再进行一步划分为多个index granularity(索引粒度),然后通过多个CPU核心分别处理其中的一部分来实现并行数据处理。在这种设计中,单条查询就能利用整机的所有CPU, 降低了查询的延迟。虽然ClickHouse能够对大量的数据能够分而治之平行处理,但是对于单条查询使用多CPU,就不利于同时并发多条查询。所以高QPS的查询业务,ClickHouse 不是其强项。

3: 总结

总的来说,ClickHouse 的功能还是非常强大的。采用列式存储,能够快速对一列的数据进行操作。同时它还支持DBMS的特性和SQL支持,同时还有多元化的引擎,帮助数据很多的存储,采用了CPU多核操作处理数据,降低了查询的延迟。为了追求查询的极致,导致了其对并发不是很好,同时也不支持事务。每一项技术都有自己的优缺点,合适自己的才是最好的。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:#yyds干货盘点#剑指 Offer 05. 替换空格
下一篇:Java 时间格式转换之impleDateFormat与Data API解析与使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~