ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLTP:系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
OLAP:系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。
以下介绍如何搭建ClickHouse服务,以及客户端如何连接。
服务器:detain
clickhouse版本:clickhouse (18.16.1+ds-4+deb10u1)
clickhouse-jdbc版本:clickhouse-client-0.3.2
dbeaver版本:22.2.5.202211202223
1、安装clickhouse-server
1)在服务器安装,clickhouse-server,clickhouse-client,clickhouse-common:
root@: apt-get install clickhouse-server,clickhouse-client,clickhouse-common
2)查看clickhouse是否启动服务
root@zjs24:/etc/clickhouse-server# systemctl status clickhouse-server
● clickhouse-server.service - ClickHouse Server
Loaded: loaded (/lib/systemd/system/clickhouse-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-12-04 15:43:33 CST; 50min ago
Main PID: 18594 (clickhouse-serv)
Tasks: 30 (limit: 4915)
Memory: 123.8M
CGroup: /system.slice/clickhouse-server.service
└─18594 /usr/sbin/clickhouse-server --config=/etc/clickhouse-server/config.xml
12月 04 15:43:33 zjs24 systemd[1]: Started ClickHouse Server.
12月 04 15:43:33 zjs24 clickhouse-server[18594]: Include not found: clickhouse_remote_servers
12月 04 15:43:33 zjs24 clickhouse-server[18594]: Include not found: clickhouse_compression
12月 04 15:43:33 zjs24 clickhouse-server[18594]: Logging warning to /var/log/clickhouse-server/clickhouse-server.log
12月 04 15:43:33 zjs24 clickhouse-server[18594]: Logging errors to /var/log/clickhouse-server/clickhouse-server.err.log
12月 04 15:43:33 zjs24 clickhouse-server[18594]: Warning in cpuinfo: kernel_max value of 8191 parsed from /sys/devices/system/cpu/kernel_max exceeds platform-default limit 1023
12月 04 15:43:33 zjs24 clickhouse-server[18594]: Include not found: networks
12月 04 15:43:35 zjs24 clickhouse-server[18594]: Include not found: clickhouse_remote_servers
12月 04 15:43:35 zjs24 clickhouse-server[18594]: Include not found: clickhouse_compression
3)进入配置文件 config.xml,确认此三个端口是否有开启
root@zjs24:/etc/clickhouse-server# nano config.xml
#dbeave使用http端口协议
<http_port>8123</http_port>
<tcp_port>9000</tcp_port>
<mysql_port>9004</mysql_port>
#确保放开远程访问
<listen_host>0.0.0.0</listen_host>
4)防火墙放通823端口
root@zjs24:/etc/clickhouse-server# firewall-cmd --zone=public --permanent --add-port=8123/tcp
root@zjs24:/etc/clickhouse-server# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client ssh
ports: 8123/tcp
5)测试端口是否监控,以及远程是否可访问
root@zjs24:/etc/clickhouse-server# lsof -i:8123
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
clickhous 18594 clickhouse 8u IPv4 90175709 0t0 TCP *:8123 (LISTEN)
在客户端 cmd 命令:telnet 192.168.0.1 8123
6)配置密码,clickhouse的默认账号是default,进入user.xml可设置密码
有两种方式设密码,可查看指引如下:clickhouse设置用户名密码_时间都哪去了的博客-CSDN博客_clickhouse修改密码
至此服务器配置完成。
2、dbeaver客户端配置
clickhouse其实有很多客户端工具,
1、Tabix:ClickHouse Web 界面 Tabix.
2、HouseOps:是一个交互式 UI/IDE 工具,可以运行在 OSX, Linux and Windows 平台中
3、灯塔 是ClickHouse的轻量级Web界面。
4、clickhouse-client:自带的命令工具
5、dbm:是ClickHouse的替代命令行客户端,用Python 3编写。
在使用dbeaver之前, 尝试使用以上5种工具,感觉用得不顺手,最后选择dbeaver。
1)下载dbeaver客户端,官网无法下载,我到github下载release了。
Releases · dbeaver/dbeaver · GitHub
2)配置驱动
进入软件后,打开路径 数据库-新建数据库链接,这里有两个clickhouse版本,我选择legacy,较低版本的,高版本(即是第二个)测试连接不了。
依次输入ip地址,账号default 密码是以上设置的密码
有可能出错有2个
第一个错误:无法下载驱动,这里不得不吐槽下dbeaver,没有配置jdbc驱动,还得让用户找半天的。
我在这里下载jdbc驱动:Download clickhouse-jdbc JAR files with all dependencies
第二个错误:ClickHouse response without column names
可在驱动属性-compress选项,配置false
最终连接成功。
最后推荐一个博文,可下载其他的数据库驱动。
DBeaver-Driver-All ( DBeaver驱动包,所有JDBC驱动整合包)_Moshow郑锴的博客-CSDN博客_clickhouse-jdbc-0.2.4.jar