前言

ClickHouse是一个完全的列式数据库管理系统,允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器,支持线性扩展,简单方便,高可靠性,容错。它在大数据领域没有走 Hadoop 生态,而是采用 Local attached storage 作为存储,这样整个 IO 可能就没有 Hadoop 那一套的局限。它的系统在生产环境中可以应用到比较大的规模,因为它的线性扩展能力和可靠性保障能够原生支持 shard + replication 这种解决方案。它还提供了一些 SQL 直接接口,有比较丰富的原生 client。另外就是它比较快。

优缺点

优点

1,为了高效的使用CPU,数据不仅仅按列存储,同时还按向量进行处理;

2,数据压缩空间大,减少IO;处理单查询高吞吐量每台服务器每秒最多数十亿行;

3,索引非B树结构,不需要满足最左原则;只要过滤条件在索引列中包含即可;即使在使用的数据不在索引中,由于各种并行处理机制ClickHouse全表扫描的速度也很快;

4,写入速度非常快,50-200M/s,对于大量的数据更新非常适用。

缺点

1.不支持事务,不支持真正的删除/更新;

2.不支持高并发,官方建议qps为100,可以通过修改配置文件增加连接数,但是在服务器足够好的情况下;

3.不支持真正的删除/更新支持 不支持事务(期待后续版本支持)

4.不支持二级索引

5.有限的SQL支持,join实现与众不同

6.不支持窗口功能

7.元数据管理需要人工干预维护

8.SQL满足日常使用80%以上的语法,join写法比较特殊;最新版已支持类似SQL的join,但性能不好;

9.尽量做1000条以上批量的写入,避免逐行insert或小批量的insert,update,delete操作,因为ClickHouse底层会不断的做异步的数据合并,会影响查询性能,这个在做实时数据写入的时候要尽量避开;

10.ClickHouse快是因为采用了并行处理机制,即使一个查询,也会用服务器一半的CPU去执行,所以ClickHouse不能支持高并发的使用场景,默认单查询使用CPU核数为服务器核数的一半,安装时会自动识别服务器核数,可以通过配置文件修改该参数。

单机安装步骤

yum install -y curl

2) 添加clickhouse的yum镜像

curl -shttps://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh| sudo bash

3) 检查镜像情况

[root@doit04 yum.repos.d]# yumlist | grep clickhouse

clickhouse-client.x86_64 20.5.4.40-1.el7 @Altinity_clickhouse clickhouse-common-static.x86_64 20.5.4.40-1.el7 @Altinity_clickhouse

4) 安装clickhouse的服务端和客户端

yum install -yclickhouse-server clickhouse-client

5) 启动服务daunt

service clickhouse-server start

6) 启动交互式客户端

clickhouse-client -m

clickhouse es 优缺点 clickhouse优点缺点 索引_服务器