2.ClickHouse系列之特点介绍
1. 列式存储
采用列式存储时,数据在磁盘上的组织结构为:
1 2 3 张三 李四 王五 18 20 25
好处:
- 对于列的聚合、计数、求和等统计操作由于列式存储
- 由于列数据类型相同,更容易数据压缩
- 由于数据压缩比更好,不仅节省磁盘空间,更便于cache发挥空间
2. DBMS功能完备
几乎覆盖标准SQL大部分语法,包括DDL与DML,以及配套函数,用户管理权限管理,数据备份与恢复
3. 引擎种类丰富
ClickHouse与Mysql类似,把表级的存储引擎插件化,根据表的不同需求可以设定不同的存储引擎。目前包括合并树、日志、接口和其他四大类20多种引擎
4. 高吞吐写入能力
ClickHouse采用类LSM Tree的结构,数据写入后定期在后台Compaction。ClickHouse在数据导入时全部是顺序append写,写入后数据段不可更改,在后台Compaction时也是多个段merge sort后顺序写回磁盘。顺序写的特性,充分利用了磁盘的吞吐能力。
官方公开能达到50MB200MB写入吞吐能力,按照每行100Byte计算,大约相当于50200W条/s的写入速度
5. 数据分区与线程级并行
ClickHouse将数据划分为多个partition,每个partition在进一步划分为多个index granularity(索引粒度),然后通过多个CPU核心分别处理其中一部分在实现并行处理。因此,单条Query就能利用整机所有CPU
就ClickHouse的特点而言,比较适合处理后的宽表的存储与统计分析