目录
1. ClickHouse简介
ClickHouse是俄罗斯的Yandex于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System) , 主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse
ClickHouse是一个完全的列式分布式数据库管理系统(DBMS),允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器,支持线性扩展,简单方便,高可靠性,容错。它在大数据领域没有走 Hadoop 生态,而是采用 Local attached storage 作为存储,这样整个 IO 可能就没有 Hadoop 那一套的局限。它的系统在生产环境中可以应用到比较大的规模,因为它的线性扩展能力和可靠性保障能够原生支持 shard + replication 这种解决方案。它还提供了一些 SQL 直接接口,有比较丰富的原生 client。
1.1 ClickHouse优点:
1.灵活的MPP架构,支持线性扩展,简单方便,高可靠性
2.多服务器分布式处理数据 ,完备的DBMS系统
3.底层数据列式存储,支持压缩,优化数据存储,优化索引数据 优化底层存储
4.容错跑分快:比Vertica快5倍,比Hive快279倍,比MySQL快800倍,其可处理的数据级别已达到10亿级别
5.功能多:支持数据统计分析各种场景,支持类SQL查询,异地复制部署
6.海量数据存储,分布式运算,快速闪电的性能,几乎实时的数据分析 ,友好的SQL语法,出色的函数支持。
1.2 ClickHouse缺点:
1.不支持事务,不支持真正的删除/更新;
2.不支持高并发,官方建议qps为100,可以通过修改配置文件增加连接数,但是在服务器足够好的情况下;
3.SQL满足日常使用80%以上的语法,join写法比较特殊;最新版已支持类似SQL的join,但性能不好;
4.尽量做1000条以上批量的写入,避免逐行insert或小批量的insert,update,delete操作,因为ClickHouse底层会不断的做异步的数据合并,会影响查询性能,这个在做实时数据写入的时候要尽量避开;
5.Clickhouse快是因为采用了并行处理机制,即使一个查询,也会用服务器一半的CPU去执行,所以ClickHouse不能支持高并发的使用场景,默认单查询使用CPU核数为服务器核数的一半,安装时会自动识别服务器核数,可以通过配置文件修改该参数。
1.3 ClickHouse引擎:
表引擎是 ClickHouse 的一大特色。可以说, 表引擎决定了如何存储表的数据。包括:
- 数据的存储方式和位置
- 支持哪些查询以及如何支持
- 并发数据访问
- 索引的使用
- 是否可以执行多线性请求
- 数据复制参数
引擎决定了数据的存储位置、存储结构、表的特征(是否修改操作DDL、DDL、是否支持并发操作)
1.3.1 数据库引擎
目前支持的数据库引擎有5种:
Ordinary:默认引擎,在绝大多数情况下我们都会使用默认引擎,使用时无须刻意声明。在此数据库下可以使用任意类型的表引擎。
Dictionary:字典引擎,此类数据库会自动为所有数据字典创建它们的数据表
Memory:内存引擎,用于存放临时数据。此类数据库下的数据表只会停留在内存中,不会涉及任何磁盘操作,当服务重启后数据会被清除
Lazy:日志引擎,此类数据库下只能使用Log系列的表引擎
MySQL:MySQL引擎,将远程的MySQL服务器中的表映射到ClickHouse中,常用语数据的合并。
MaterializeMySQL:MySQL数据同步;将MySQL数据全量或增量方式同步到clickhouse中,解决mysql服务并发访问压力过大的问题。
1.3.2 表引擎
2. ClickHouse下载安装
2.1 ClickHouse下载安装
官方下载地址:https://packages.clickhouse.com/tgz/stable
阿里云下载地址:https://mirrors.aliyun.com/clickhouse/tgz/stable
一共需要下载4个文件:
clickhouse-client-22.2.2.1.tgz
clickhouse-common-static-22.2.2.1.tgz
clickhouse-common-static-dbg-22.2.2.1.tgz
clickhouse-server-22.2.2.1.tgz
将下载后的四个安装文件上传到服务器,这里是上传到linux
的/opt/software/
下。
依次将这四个安装包解压,并且每解压一个,执行一下解压文件夹下的install
下的doinst.sh
脚本。
1. clickhouse-common-static-22.2.2.1.tgz
tar -zxvf /opt/software/clickhouse-common-static-22.2.2.1.tgz
./clickhouse-common-static-22.2.2.1/install/doinst.sh
2. clickhouse-common-static-dbg-22.2.2.1.tgz
tar -zxvf /opt/software/clickhouse-common-static-dbg-22.2.2.1.tgz
./clickhouse-common-static-dbg-22.2.2.1/install/doinst.sh
3. clickhouse-server-22.2.2.1.tgz
注意:在运行doinst.sh时,clickhouse会默认创建一个default的用户,让你设置密码,不设置密码可以按回车。
tar -zxvf /opt/software/clickhouse-server-22.2.2.1.tgz
./clickhouse-server-22.2.2.1/install/doinst.sh
4. clickhouse-client-22.2.2.1.tgz
tar -zxvf /opt/software/clickhouse-client-22.2.2.1.tgz
./clickhouse-client-22.2.2.1/install/doinst.sh
#查看 clickhouse 命令
clickhouse --help
#启动clickhouse服务
clickhouse start
启动结果:
2.2 ClickHouse使用
连接clickhouse
clickhouse-client -u default --password 199511
连接成功结果
clickhouse相关目录
# 命令目录
/usr/bin
ll |grep clickhouse
-------------------------------------------
# 配置文件目录
cd /etc/clickhouse-server/
-------------------------------------------
# 日志目录
cd /var/log/clickhouse-server/
-------------------------------------------
# 数据文件目录
cd /var/lib/clickhouse/
允许远程访问
clickhouse 默认不允许远程访问,需要修改配置文件:
cd /etc/clickhouse-server/
vi config.xml
注意:只需要把 <listen_host>::</listen_host> 这一个的注释放开即可。
重启clickhouse服务:
clickhouse restart
在浏览器输入服务器ip:8123验证一下,显示OK即代表可远程连接。
使用客户端连接clickhouse
第一次连接需要安装驱动,根据提示操作即可安装成功。