ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的用于在线分析处理查询(OLAP :Online Analytical Processing)MPP架构的列式存储数据库(DBMS:Database Management System),能够使用 SQL 查询实时生成分析数据报告。ClickHouse的全称是Click Stream,Data WareHouse。
clickhouse特点:
列式存储:
行式存储的好处:
列式存储的好处:
高吞吐写入能力
ClickHouse采用类LSM Tree的结构,数据写入后定期在后台Compaction。通过类 LSM tree的结构, ClickHouse在数据导入时全部是顺序append写,写入后数据段不可更改,在后台compaction时也是多个段merge sort后顺序写回磁盘。顺序写的特性,充分利用了磁盘的吞吐能力。
数据分区与线程及并行
ClickHouse将数据划分为多个partition,每个partition再进一步划分为多个index granularity(索引粒度),然后通过多个CPU核心分别处理其中的一部分来实现并行数据处理。在这种设计下, 单条 Query 就能利用整机所有 CPU。 极致的并行处理能力,极大的降低了查询延时。
所以, ClickHouse 即使对于大量数据的查询也能够化整为零平行处理。但是有一个弊端就是对于单条查询使用多cpu,就不利于同时并发多条查询。所以对于高 qps 的查询业务并不是强项。
clickhouse官网地址:https://clickhouse.com/
官网安装部署地址:https://clickhouse.com/docs/zh/getting-started/install
安装包地址:https://packages.clickhouse.com/tgz/stable/
执行解压安装:
tar -zxvf clickhouse-common-static-21.1.9.41.tgz
./clickhouse-common-static-21.1.9.41/install/doinst.sh
tar -zxvf clickhouse-common-static-dbg-21.1.9.41.tgz
./clickhouse-common-static-dbg-21.1.9.41/install/doinst.sh
tar -zxvf clickhouse-server-21.1.9.41.tgz
./clickhouse-server-21.1.9.41/install/doinst.sh
tar -zxvf clickhouse-client-21.1.9.41.tgz
./clickhouse-client-21.1.9.41/install/doinst.sh
查看clickhouse命令:
clickhouse --help
启动clickhouse
clickhouse start
连接clickhouse 客户端
clickhouse-client
查看数据库
show databases;
退出客户端
quit;
clickhouse 核心配置文件目录
clickhouse 日志路径
clickhouse 数据目录
修改config.xml 配置文件
然后重启服务
clickhouse restart
连接其它虚拟机
clickhouse-client -h hadoop03
# 查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息
# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=8123/tcp --permanent
重启防火墙:systemctl restart firewalld.service
命令含义:
--zone #作用域
--add-port=8123/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
http://192.168.241.128:8123/
ALTER TABLE db_name.table_name RENAME COLUMN regionId to region;
ALTER TABLE db_name.table_name MODIFY COLUMN endTimestamp Int64;
ALTER TABLE db_name.table_name ADD COLUMN `$user_id` Nullable(String);
ALTER TABLE db_name.table_name DROP COLUMN `$user_id`;