ClickHouse-强大的特性

ClickHouse-特性

1 完美的列式数据库存储系统

ClickHouse是一个真真正正的列式数据库,同时也是一个完美的数据库管理系统;因为它允许在运行的时候创建数据库和表,同时加载数据和运行查询,而且无需重新配置和重启服务。

一个真正的列式存储数据库是不应该存储数据本身以外的数据的,目前市面上的列式存储数据库也有很多,比如Hbase、HrperTable、BigTable、Cassandra等,拿Hbase来说,Hbase存储数据的同时,每个Cell都存储了一份rowkey、columnFamily、timestamp的数据,导致了吞吐量的显著差异:

ClickHouseHbase
吞吐量几亿行/s数十万行/s

2 数据压缩性能完美

在一些列式数据库管理系统中(例如:InfiniDB CE 和 MonetDB) 并没有使用数据压缩。但是, 若想达到比较优异的性能,数据压缩确实起到了至关重要的作用;

3 数据的磁盘存储

很多列式数据库只支持在内存中工作,如Google PowerDrill、SAP HANA等,但是ClickHouse支持廉价的传统磁盘存储(TIDB只对SSD固态硬盘比较友好),在底层磁盘物理存储的方式上按照primary-key进行排序,可以实现ms级别的按照特定的范围或者单个primarykey进行快速查询,而且提供了每GB更低的存储成本,如果可以使用SSD和内存,那么它也会很好的利用资源,实现更好的服务效果。

4 MPP架构

市面上MPP架构的数据分析产品很多,TIDB、GreenPlum等等,MPP属于多核心并行处理架构,可以利用服务器上所有可用的资源,以最自然的方式处理大规模的查询。

5 多服务器分布式处理

ClickHouse可以将数据存储在不同的shard上,每一个shard都由一组容错的replica组成,这个其实GreenPlum也可以做到,TIDB也可以做到查询操作可以被分布到每个shard中进行处理,对用户来说是透明的,就好像Hbase的查询实际上是被分布到了不同的region中通过regionscanner进行处理。

6 完美的SQL支持

Hbase原生不支持SQL,需要借助Kylin或者Pheonix,有点LJ,因为系统组件越多稳定性越低,维护成本越高;

ClickHouse支持SQL查询,GROUP BY,JOIN ,IN,ORDER BY等;

ClickHouse不支持窗口函数和相关的子查询,所以一些逻辑需要开发者另想办法;

7 向量引擎

ClickHouse不仅支持列存储,支持向量引擎,当查询大量row的时候,按列的存储顺序往下查找,大量减少了CPU的等待时间,从而高效实用CPU资源;

8 主键索引支持(primary key)

ClickHouse支持创建主键primarykey,这将帮助ClickHouse在几十ms的情况下对特定的数据范围进行查询并展示到页面;

9 支持实时更新数据

ClickHouse在使用Merge tree引擎的时候,插入数据的时候按照数据的primary-key进行递增排序进行磁盘存储,所以数据能被持续的添加到表中,而且在插入新数据的时候是没有lock的,减少了sycn校验的时间。

9 二级索引(secondary-indexes)

Clickhouse与Hbase一样支持二级索引,同样是倒排索引,构建索引映射,但是与Hbase刚好实现的效果相反;

Hbase: 二级索引 -> rowkey[range],便于找到指定或者限定范围的rows;

ClickHouse: 二级索引 -> 指向不需要查询的数据集,让数据库在查询之前就知道需要跳跃哪些数据,所以clickhouse的二级索引又叫做 data-skip-index,当查询的时候直接跳过无关的数据集,大大提升查询效率,特别是列式存储时查询大量的行的时候,省去了全表扫描

10 支持近似计算

ClickHouse提供各种各样在允许牺牲数据精度的情况下对查询进行加速的方法:

  1. 用于近似计算的各类聚合函数,如:distinct values, medians, quantiles
  2. 基于数据的部分样本进行近似查询。这时,仅会从磁盘检索少部分比例的数据。
  3. 不使用全部的聚合条件,通过随机选择有限个数据聚合条件进行聚合。这在数据聚合条件满足某些分布条件下,在提供相当准确的聚合结果的同时降低了计算资源的使用。

11 支持数据的复制和数据完整性

ClickHouse实用async的多主复制技术,当数据被写入任何一个可用的副本后,系统会在后台将数据分发给其它的副本,以保证系统在不同副本上保持相同的数据;

并且在大多数情况下ClickHouse能够在故障之后自动回复,在少数情况复杂情况下需要手动恢复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值