ClickHouse 特性
1、真正的列式数据库管理系统
支持固定长度数值类型
允许在运行时创建表和数据库、加载数据和运行查询,无需重新配置或者重启服务
2、数据压缩
达到优异的性能呢,数据压缩起到了至关重要的作用
3、数据的磁盘存储
支持内存和磁盘存储
4、多核心并行处理
使用一切可以用的资源,以最自然的方式并行处理大型查询
5、多服务器分布式处理
支持分布式查询处理
数据保存在不同的shard上,每一个shard都由一组用于容错的replica组成,查询可以并行在所有shard上进行处理
6、支持SQL
基于SQL的声明式查询语言,执行SQL标准兼容并支持包括group by,order by,in,join以及非相关子查询
不支持串口函数和相关子查询
7、向量引擎
数据不仅仅按列存储,同时还按向量(列的一部分)进行处理,更加高效实用CPU
8、实时的数据更新
支持在表中定义主键,为了使查询能够快速在主键中进行范围查找,数据总是以增量的方式有序的存储在MergeTree中。因此,数据可以持续不断地高效的写入到表中,并且写入的过程中不会存在任何加锁的行为。
9、索引
按照主键对数据进行排序,在几十毫秒内完成对数据特定值或范围的查找
10、适合在线查询
在线查询意味着在没有对数据做任何预处理的情况下以极低的延迟处理查询并将结果加载到用户的页面中
11、支持近似计算
提供各种各样在允许牺牲数据精度的情况下对数据查询进行加速的方法:
1、用于近似计算各类聚合函数,入:distinct values,medians,quantiles
2、基于数据的部分样板进行近似查询。这时,仅会从磁盘检索少部分比例的数据
3、不适用全部的聚合条件,通过随机选择有限个数据聚合条件进行聚合。这在数据聚合条件满足某些分布式条件下,在提供相当于准确的聚合结果的不同时降低了计算资源的使用。
12、支持数据复制和数据完整性
使用异步的多主复制技术。当数据被写入任何一个可用副本后,系统会在后台将数据分发给其它副本,以保证系统在不同副本上保持相同的数据。在大多数情况下能在故障后启动恢复,一些少数的复杂情况下需要手动恢复
13、限制
1、没有完整的事物支持
2、缺少高频率,低延迟的修改或删除已存在的数据能力。仅能用于批量删除或修改数据,这符合GDPR
3、稀疏索引使得不适合通过其键检索单行的点查询