Clickhouse是由俄罗斯公司yandex公司开源的一个用于做OLAP分析的列式存储数据库,并且支持SQL查询
OLAP (ONline analyes Process) 联机分析处理 主要对数据做统计分析,对于分析人员主要可以提供一些数据报表,对数据的趋势或者整体的分布做直观展示
OLTP(ONline transaction Process) 联机事务处理 主要用于对数据的增删改查并且是支持事务的 ,对于一些后端框架
在传统的行式数据库系统中,数据按如下顺序存储:
对于行式存储数据库,表中的数据是按照行进行分割,对于同一行中的数据会被存放至同一个数据块中,如果读取表中部分列信息需要先读取所有数据块信息,之后再对其中部分列进行过滤,取出其中的值。
①优点:数据加载速度快,所有数据优先从本地读取,不需要额外的网络开销。
②缺点:是每行中所有列都放在了相同的数据块中,在读取一行数据时会读取当前行的所有列,这样就增加了额外的磁盘I/O开销。并且每一列存储的数据类型不能一样,在数据压缩时不同数据类型压缩效果会很大,这样会导致磁盘利用率低,同样也会导致磁盘I/O加大。
这些示例只显示了数据的排列顺序。来自不同列的值被单独存储,来自同一列的数据被存储在一起。
列式存储结构将关系表按列垂直分割成多个子关系表,分割后的每组子关系表中的所有数据存放在同一个数据块中,每一列都是独立存储的。
①优点:只读取有用的列,能够避免额外的磁盘I/O开销,同一列中的数据类型相同,因此数据压缩时有很好的压缩比,提高了磁盘的空间利用率。
②缺点:是由于列式存储按照列来垂直分割数据,因此不同的列可能分布在不同的节点上,读取不同的列会出现跨界点访问的问题,这样就增加了网络传输所消耗的时间。
绝大多数是读请求
数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。
已添加到数据库的数据不能修改。
对于读取,从数据库中提取相当多的行,但只提取列的一小部分。
宽表,即每个表包含着大量的列
查询相对较少(通常每台服务器每秒查询数百次或更少)
对于简单查询,允许延迟大约50毫秒
列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)
处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)
事务不是必须的
对数据一致性要求低
每个查询有一个大表。除了他以外,其他的都很小。
查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中
数据库排名:
DB-Engines Ranking - popularity ranking of database management systems
Clickhouse官网 Fast Open-Source OLAP DBMS - ClickHouse
rpm安装模式下,需要去官网下载对应的包 https://packages.clickhouse.com/rpm/
选择21.10.6.2版本下载,共有四个安装包,下载连接如下:
https://packages.clickhouse.com/rpm/stable/clickhouse-client-21.10.6.2-2.noarch.rpm
https://packages.clickhouse.com/rpm/stable/clickhouse-server-21.10.6.2-2.noarch.rpm
https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-21.10.6.2-2.x86_64.rpm
https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-dbg-21.10.6.2-2.x86_64.rpm
① 在/usr/local/soft目录中创建目录
mkdir clickhouse
② 上传安装包至clickhouse目录中
③ 执行安装命令
rpm -ivh clickhouse-*
④ 设置密码
执行过程中会要求设置密码,如果不输入 请直接回车,如果设置密码 那么在后续启动过程中需要通过
安装后验证
⑤ 修改配置文件
在 /etc/clickhouse-server 路径下的config.xml中查找listen_host 并将如下注释打开,使其可以被除本机以外的其他IP所访问
部分配置
配置信息路径为 /etc/clickhouse-server
可以在 config.xml 中进行修改对应的配置信息
8123 对应JDBC/ODBC 连接端口
9000 对应客户端连接端口对应该配置需要将注释信息去除 可以被除本机以外的其他IP所访问
⑥ 启动及关机
启停命令
1. 启动
clickhouse-server start
systemctl start clickhouse-server.service
2. 查看状态
clickhouse-server status
systemctl status clickhouse-server.service
3. 重启
clickhouse-server restart
systemctl restart clickhouse-server.service
4.开机自启
systemctl enable clickhouse-server.service
systemctl disable clickhouse-server.service
clickhouse-client 如果没有密码 其他都是默认可以直接进入
clickhouse-client -h ip --port 9000 --password 123456
然后就打开ClickHouse了
安装完毕。
1.用于配置相关信息
/etc/clickhouse-server
/etc/clickhouse-client
2.数据保存位置以及生成的相关配置信息
/var/lib/clickhouse
- data 保存具体数据,并且按目录对数据库进行区分,在库中对应表也是以目录的形式展现
- metadata 用于保存元数据信息,元数据:对于表和库的描述信息
3.执行命令
/usr/bin/
clickhouse-client 命令可以添加如下选项
-h 设置连接的主机(IP)
--port 设置连接的端口 默认ClickHouse端口为9000
--password 输入密码
--query "查询语句" 可以用来做SQL查询
退出命令: exit 或者 quit