目录
- 什么是 ClickHouse
-
- 软件介绍
-
- 简介
- 市场环境
- 目前国内社区火热,各个大厂纷纷跟进大规模使用:
- 特点
- 优点
-
- 1、真正的面向列的DBMS
- 2、数据压缩
- 3、磁盘存储的数据
- 4、多核并行处理
- 5、在多个服务器上分布式处理
- 6、SQL 支持
- 7、向量化引擎
- 8、实时数据更新
- 9、支持近似计算
- 10、数据复制和对数据完整性的支持
- 缺点
- 环境搭建
-
- 下载软件
- 上传安装
- 配置文件
- 启动服务
- 可视化工具 DBeaver 连接
什么是 ClickHouse
软件介绍
简介
- 1、ClickHouse 是俄罗斯搜索巨头 Yandex 公司早 2016年 开源的一个极具 " 战斗力 " 的实时数据分析数据库,开发语言为C++
- 2、是一个用于联机分析 (
OLAP
:Online Analytical Processing) 的列式数据库管理系统
(DBMS:Database Management System),简称 CK - 3、工作速度比传统方法快100-1000倍,ClickHouse 的性能超过了目前市场上可比的面向列的DBMS。 每秒钟每台服务器每秒处理数亿至十亿多行和数十千兆字节的数据。
市场环境
- 1、随着业务的迅猛增长,Yandex.Metrica目前已经成为世界第三大Web流量分析平台,每天处理超过200亿个跟踪事件。能够拥有如此惊人的体量,在它背后提供支撑的ClickHouse功不可没。
- 2、ClickHouse已经为Yandex.Metrica存储了超过20万亿行的数据,90%的自定义查询能够在1秒内返回,其集群规模也超过了400台服务器。虽然ClickHouse起初只是为了Yandex.Metrica而研发的,但由于它出众的性能,目前也被广泛应用于Yandex内部其他数十个产品上。
目前国内社区火热,各个大厂纷纷跟进大规模使用:
- 今日头条 内部用ClickHouse来做用户行为分析,内部一共几千个ClickHouse节点,单集群最大1200节点,总数据量几十PB,日增原始数据300TB左右。
- 腾讯 内部用ClickHouse做游戏数据分析,并且为之建立了一整套监控运维体系。
- 携程 内部从18年7月份开始接入试用,目前80%的业务都跑在ClickHouse上。每天数据增量十多亿,近百万次查询请求。
- 快手 内部也在使用ClickHouse,存储总量大约10PB, 每天新增200TB, 90%查询小于3S。
特点
1、开源的列存储数据库管理系统,支持线性扩展,简单方便,高可靠性
2、容错跑分快:比Vertica快5倍,比Hive快279倍,比MySQL快800倍,其可处理的数据级别已达到10亿级别
- 速度对比图
3、功能多:支持数据统计分析各种场景,支持类SQL查询,异地复制部署
优点
1、真正的面向列的DBMS
- ClickHouse是一个DBMS,而不是一个单一的数据库。它允
许在运行时创建表和数据库、加载数据和运行查询,而无需重新配置和重新启动服务器
2、数据压缩
- 一些面向列的DBMS(INFINIDB CE 和 MonetDB)不使用数据压缩。但是,数据压缩确实是提高了性能
3、磁盘存储的数据
- 许多面向列的DBMS(SPA HANA和GooglePowerDrill))只能在内存中工作。但即使在数千台服务器上,内存也太小了。
4、多核并行处理
- 多核多节点并行化大型查询
5、在多个服务器上分布式处理
- 在clickhouse中,数据可以驻留在不同的分片上。每个分片都可以用于容错的一组副本,查询会在所有分片上并行处理
6、SQL 支持
- ClickHouse sql 跟真正的sql有不一样的函数名称。不过语法基本跟SQL语法兼容,支持JOIN/FROM/IN 和JOIN子句及标量子查询支子查询
7、向量化引擎
- 数据不仅按列式存储,而且由矢量-列的部分进行处理,这使得开发者能够实现高CPU性能
8、实时数据更新
- ClickHouse支持主键表。为了快速执行对主键范围的查询,数据使用合并树(MergeTree)进行递增排序。由于这个原因,数据可以不断地添加到表中)
9、支持近似计算
- 统计全国到底有多少人?143456754 14.3E
10、数据复制和对数据完整性的支持
- ClickHouse使用异步多主复制。写入任何可用的复本后,数据将分发到所有剩余的副本。系统在不同的副本上保持相同的数据。数据在失败后自动恢复
缺点
-
没有完整的事务支持,不支持Transaction想快就别Transaction
-
缺少完整Update/Delete操作,缺少高频率、低延迟的修改或删除已存在数据的能力,仅用于批量删除或修改数据。
-
聚合结果必须小于一台机器的内存大小
-
支持有限操作系统,正在慢慢完善
-
不适合Key-value存储,不支持Blob等文档型数据库
环境搭建
下载软件
-
官网下载
-
备用下载地址
-
安装包类别
- clickhouse-common-static — ClickHouse编译的二进制文件。
- clickhouse-server — 创建 clickhouse-server 软连接,并安装默认配置服务
- clickhouse-client — 创建 clickhouse-client 客户端工具软连接,并安装客户端配置文件
上传安装
-
安装
-
[root@node01 ~]# rpm -ivh clickhouse-common-static-21.6.8.62-2.x86_64.rpm
-
[root@node01 ~]# rpm -ivh clickhouse-server-21.6.8.62-2.noarch.rpm
- 输入密码:123456
-
[root@node01 ~]# rpm -ivh clickhouse-client-21.6.8.62-2.noarch.rpm
-
-
查看
-
[root@node01 ~]# rpm -qa | grep clickhouse
- 列出所有包含 clickhouse 字段的软件信息
-
[root@node01 ~]# rpm -ql clickhouse-server-21.6.8.62-2.noarch
- 查看rpm包安装的详细路径
-
[root@node01 ~]# ll /etc/clickhouse-server/
- 查看路径下文件
-
配置文件
-
1、修改权限
- [root@node01 ~]# chmod 644 /etc/clickhouse-server/config.xml
- [root@node01 ~]# chmod 644 /etc/clickhouse-server/users.xml
-
2、修改配置文件 config.xml
- [root@node01 ~]# vim /etc/clickhouse-server/config.xml
- 配置内容
<!-- 需要主动添加这一行 --> 166 <listen_host>::</listen_host> <!-- 关键配置,默认不需要修改 --> 73 <http_port>8123</http_port> 82 <tcp_port>9000</tcp_port> 336 <path>/var/lib/clickhouse/</path> 515 <default_profile>default</default_profile> 530 <default_database>default</default_database>
-
3、修改配置文件 users.xml
- [root@node01 ~]# vim /etc/clickhouse-server/users.xml
- 配置内容
64 <password>123456</password>
启动服务
-
1、开启服务
- [root@node01 ~]# systemctl start clickhouse-server.service
-
2、客户端登录
-
[root@node01 ~]# clickhouse-client -h 192.168.88.101 -u default –password
- 默认用户 default 密码 123456
-
-
3、查看节点的信息
- select * from system.clusters;
可视化工具 DBeaver 连接
底线。。。