文章目录


    • 数据分区与线程级并行
    • 安装
      • 修改打开文件的句柄数



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


CK主要的存储方式是列式存储,对于列的聚合,计数,求和等统计操作原因由于行式存储,由于某一列的数据类型都是相同,针对数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重


由于数据压缩比更好,一方面节省了磁盘空间,另一方面对于cache也有恒大的发挥空间


采用LSM Tree 的结构,数据写入后定期在后台Compaction,通过LSM tree 的结构,CK在数据导入时,全都是顺序append写,写入数据段不可更改,在后台compaction 时,也是多个段的merge sort 后顺序写回磁盘,顺序写的特性,充分利用磁盘吞吐能力,即便在HDD上也有着优异的写入性能


官方测试显示50MB /s -200MB /s 的写入吞吐能力,每行100 byte大约50w -200w 条/s的写入速度

数据分区与线程级并行

ClickHouse 将数据划分个partition,每个partition再进一步划分多个index granularity(索引粒度),然后通过多个CPU核心分布处理其中的一部分来实现并行数据处理,在这种设计下,单条Query就能利用整机CPU,极致的并行能力.大大降低查询延时
所以,CK即使对于大量数据查询也能化整为零平行处理,但是有一个弊端就是对于单条查询使用CPU,就不利于同时并发多条查询,所以对于高gps的查询业务,CK并不是强项
1)单表查询

ClickHouse 入门_数据

2) 关联查询

ClickHouse 入门_数据_02

因此对于单表查询,ck的性能还是比较强的,多表查询性能还是一般的

安装

修改打开文件的句柄数

安装的每台机器上进行同步操作

vim /etc/security/limits.conf


* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072


```csharp
vim /etc/security/limits.d/20-nproc.conf

> \* soft nofile 65536
> \* hard nofile 65536
>\* soft nproc 131072
\* hard nproc 131072

安装依赖
yum install -y libtool
yum install -y \*unixODBC\*
确保selinux已经关闭,在/etc/selinux/config 中SELINUX=disabled

对于单机安装:https://clickhouse.tech/
下载地址: http://repo.red-soft.biz/repos/clickhouse/stable/el7/
需要如下包
clickhouse-client-21.7.3.14-2.noarch.rpm
clickhouse-common-static-dbg-21.7.3.14-2.x86_64.rpm
clickhouse-common-static-21.7.3.14-2.x86_64.rpm
clickhouse-server-21.7.3.14-2.noarch.rpm
在所有节点安装

```csharp
rpm -ivh *.rpm

修改/etc/clickhouse-server/config.xml

将<listen_host>::</listen_host> 的注释打开 ,允许其他服务器访问

数据文件路径:<path>/var/lib/clickhouse/</path>

日志文件路径:<log>/var/log/clickhouse-server/clickhouse-server.log</log>

启动server

systemctl start clickhouse-server

关闭开机自启动

systemctl disable clickhouse-server

连接

clickhouse-client -m

报错

[root@c701 shell]# clickhouse-client -m

ClickHouse client version 21.7.3.14 (official build).

Connecting to localhost:9000 as user default.

Code: 516. DB::Exception: Received from localhost:9000. DB::Exception: default: Authentication failed: password is incorrect or there is no user with such name.

安装的时候设置了密码

clickhouse-client --password

设置的是root