文章目录
- 数据分区与线程级并行
- 安装
- 修改打开文件的句柄数
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)单表查询
2) 关联查询
因此对于单表查询,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