一、概述
官网:https://clickhouse.com/docs/zh
ClickHouse是Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告.
clickhouse优势:
与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级,其特点:
1.列式存储数据库,数据压缩
2.关系型、支持SQ
3.分布式并行计算,把单机性能压榨到极限
4.高可用
5.数据量级在PB级别
6.实时数据更新
7.索引
clickhouse限制:
1.缺少高频率,低延迟的修改或删除已存在数据的能力。仅能用于批量删除或修改数据
2.没有完整的事务支持
3.不支持二级索引
4.有限的SQL支持,join实现与众不同
5.不支持窗口功能
6.元数据管理需要人工干预维护
ClickHouse使用现状:
ClickHouse 是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域:
1.今日头条内部用 ClickHouse 来做用户行为分析,内部一共几千个 ClickHouse 节点,单集群最大 1200 节点,总数据量几十 PB,日增原始数据 300TB 左右
2.腾讯内部用 ClickHouse 做游戏数据分析,并且为之建立了一整套监控运维体系。
3.携程内部从 18 年 7 月份开始接入试用,目前 80% 的业务都跑在 ClickHouse 上。每天数据增量十多亿,近百万次查询请求。
4.快手内部也在使用 ClickHouse,存储总量大约 10PB, 每天新增 200TB, 90% 查询小于 3S
在 1 亿数据集体量的情况下,ClickHouse 的平均响应速度是 Vertica 的 2.63 倍、InfiniDB 的 17 倍、MonetDB 的 27 倍、Hive 的 126 倍、MySQL 的 429 倍以及Greenplum 的 10 倍。详细的测试结果可以查阅:https://clickhouse.tech/benchmark/dbms/
ClickHouse 非常适用于商业智能领域(也就是我们所说的 BI 领域),除此之外,它也能够被广泛应用于广告流量、Web、App 流量、电信、金融、电子 商务、信息安全、网络游戏、物联网等众多其他领域
二、环境准备
IP | 配置 | clickhouse版本 |
192.168.10.35 | Centos 6.9 2核4G | 22.8.20.11 |
下载地址:https://packages.clickhouse.com/tgz/lts/
下载的安装包如下:
clickhouse-client-22.8.20.11-amd64.tgz
clickhouse-common-static-22.8.20.11-amd64.tgz
clickhouse-common-static-dbg-22.8.20.11-amd64.tgz
clickhouse-server-22.8.20.11-amd64.tgz
三、单机部署
# 1.解压安装包 mkdir -p /usr/local/clickhouse cd /usr/local/clickhouse # 2.上传安装文件至目录 tar -xzvf clickhouse-client-22.8.20.11.tgz tar -xzvf clickhouse-common-static-22.8.20.11.tgz tar -xzvf clickhouse-common-static-dbg-22.8.20.11.tgz tar -xzvf clickhouse-server-22.8.20.11.tgz # 3.安装 clickhouse-common-static-22.8.20.11/install/doinst.sh clickhouse-common-static-dbg-22.8.20.11/install/doinst.sh clickhouse-server-22.8.20.11/install/doinst.sh ## 根据提示设置数据库用户密码 123456 ## 根据提示设置允许所有网络连接 clickhouse-client-22.8.20.11/install/doinst.sh # 4. 修改配置文件 (1) 修改/etc/clickhouse-server/config.xml监听地址 vi /etc/clickhouse-server/config.xml <listen_host>0.0.0.0</listen_host> # 取消注释 (2) 修改文件/etc/clickhouse-server/config.d/listen.xml,修改为以下配置 vim /etc/clickhouse-server/config.d/listen.xml <clickhouse> <listen_host>0.0.0.0</listen_host> </clickhouse> # 5.启动clickhouse clickhouse start [root@sql clickhouse]# netstat -ntlp| grep clickhouse tcp 0 0 0.0.0.0:8123 0.0.0.0:* LISTEN 127131/clickhouse-s tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 127131/clickhouse-s tcp 0 0 0.0.0.0:9004 0.0.0.0:* LISTEN 127131/clickhouse-s tcp 0 0 0.0.0.0:9005 0.0.0.0:* LISTEN 127131/clickhouse-s tcp 0 0 0.0.0.0:9009 0.0.0.0:* LISTEN 127131/clickhouse-s # clickhouse-client连接 [root@sql clickhouse]# clickhouse-client --password dmgame sql :) show databases; SHOW DATABASES Query id: 05d270eb-a181-4ec5-a16b-2730a1a21333 ┌─name───────────────┐ │ INFORMATION_SCHEMA │ │ default │ │ information_schema │ │ system │ └────────────────────┘ 4 rows in set. Elapsed: 0.004 sec. # 状态查询 [root@sql clickhouse]# systemctl status clickhouse-server ● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data) Loaded: loaded (/usr/lib/systemd/system/clickhouse-server.service; enabled; vendor preset: disabled) Active: inactive (dead) # 日志查看 [root@sql clickhouse]# tail -100f /var/log/clickhouse-server/clickhouse-server.err.log 2023.07.20 18:05:54.553825 [ 127131 ] {} <Warning> Context: Linux transparent hugepages are set to "always". Check /sys/kernel/mm/transparent_hugepage/enabled 2023.07.20 18:05:54.553946 [ 127131 ] {} <Warning> Context: Linux threads max count is too low. Check /proc/sys/kernel/threads-max 2023.07.20 18:05:54.819162 [ 127131 ] {} <Warning> Context: Maximum number of threads is lower than 30000. There could be problems with handling a lot of simultaneous queries. 2023.07.20 18:05:54.878573 [ 127131 ] {} <Warning> Access(local directory): File /var/lib/clickhouse/access/users.list doesn't exist 2023.07.20 18:05:54.878607 [ 127131 ] {} <Warning> Access(local directory): Recovering lists in directory /var/lib/clickhouse/access/
# clickhouse启动关闭命令
启动命令
clickhouse start
关闭命令
clickhouse stop
四、数据库管理工具访问
推荐使用DBeaver工具访问
参考文献:
OLAP系列:一、分析型数据库clickhouse的概述与单机部署试用