Clickhouse数据库安装
Clickhouse 仅支持Linux 且必须支持SSE4.2 指令集 :centos7
命令:grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
结果:SSE 4.2 supported
clickhouse下载地址: https://packagecloud.io/Altinity/clickhouse
安装存储库命令: curl -s https://packagecloud.io/install/repositories/Altinity/clickhouse/script.rpm.sh | sudo bash
云安装安装wget:yum install -y wget
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm/download.rpm
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-20.8.3.18-1.el7.x86_64.rpm/download.rpm
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-common-static-20.8.3.18-1.el7.x86_64.rpm/download.rpm
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-client-20.8.3.18-1.el7.x86_64.rpm/download.rpm
运行安装:rpm -ivh ./*.rpm 成功如下图所示:
配置ClickHouse
ClickHouse中的配置项很多,默认会在/etc
下生成clickhouse-server
和clickhouse-client
两个目录,由于我们安装服务我们去修改clickhouse-server
下的配置文件修改/etc/clickhouse-server/config.xml
比较重要:访问外网: <listen_host>::</listen_host>
编辑: vi /etc/clickhouse-server/config.xml 常见修改目录
logger
修改日志的存放路径http_port
修改浏览器访问的端口,默认为8123
tcp_port
修改tcp协议的传输端口openSSL
一些ssl的认证配置文件,我们暂时不做ssl认证,此处不做处理listen_host
如果我们要对外使用服务的话,此处需要修改成0.0.0.0
remote_servers
此处是集群相关的配置信息后续会详解
默认路径:
-
/var/lib/clickhouse : 默认的数据存储目录,通常会修改,将数据保存到大容量磁盘路径中
-
/var/log/cilckhouse-server : 默认保存日志的目录,通常会修改,将数据保存到大容量磁盘路径中
用户名加密码:修改etc/clickhouse-server/users.xml
default下面的password加123456
启动方式
1.启动clickhouse服务:service clickhouse-server start
2.或者控制台中直接启动服务 : clickhouse-server --config-file=/etc/clickhouse-server/config.xml 日志将被打印到控制台中,这在开发过程中很方便。如果配置文件在当前目录中,你可以不指定’–config-file’参数。它默认使用’./config.xml’。
重启: service clickhouse-server restart
命令行客户端连接到服务
命令: clickhouse-client
出现如下信息:
ClickHouse client version 20.8.3.18.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.8.3 revision 54438.
备注: 多个SQL按照英文;
分割每个SQL即可
显示当前数据库:show databases;
创建数据库:create database if not exists dw;
退出:exit
clickhouse默认使用:9000端口 8123
开放端口
firewall-cmd --zone=public --add-port=8123/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --add-port=9000/tcp --permanent
客户端的访问接口
ClickHouse的底层访问接口支持TCP和HTTP两种协议,其中,TCP协议拥有更好的性能,其默认端口为9000,主要用于集群间的内部通信及CLI客户端;而HTTP协议则拥有更好的兼容性,可以通过REST服务的形式被广泛用于JAVA、Python等编程语言的客户端,其默认端口为8123。通常而言,并不建议用户直接使用底层接口访问ClickHouse,更为推荐的方式是通过CLI和JDBC这些封装接口,因为它们更加简单易用。
CLI(Command Line Interface)即命令行接口,其底层是基于TCP接口进行通信的,是通过clickhouse-client脚本运行的。它拥有两种执行模式。
重要参数(1)–host / -h:服务端的地址,默认值为localhost。如果修改了config.xml内的listen_host,则需要依靠此参数指定服务端地址,例如下面所示的代码。
(2)–port:服务端的TCP端口,默认值为9000。如果要修改config.xml内的tcp_port,则需要使用此参数指定。
(3)–user / -u:登录的用户名,默认值为default。如果使用非default的其他用户名登录,则需要使用此参数指定,例如下面所示代码。关于自定义用户的介绍将在第11章展开。
(4)–password:登录的密码,默认值为空。如果在用户定义中未设置密码,则不需要填写(例如默认的default用户)。
(5)–database / -d:登录的数据库,默认值为default。
(6)–query / -q:只能在非交互式查询时使用,用于指定SQL语句。
(7)–multiquery / -n:在非交互式执行时,允许一次运行多条SQL语句,多条语句之间以分号间隔。
(8)–time / -t:在非交互式执行时,会打印每条SQL的执行时间