clickhouse安装与使用

ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。官方文档地址如下:

https://clickhouse.com/docs/zh

在传统的行式数据库系统中,数据按如下顺序存储:

处于同一行中的数据总是被物理的存储在一起,常见的行式数据库系统有:MySQLPostgresMS SQL Server

在列式数据库系统中,数据按如下的顺序存储:

常见的列式数据库有: Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 MonetDB (VectorWise, Actian Vector)、 LucidDB、 SAP HANA、 Google Dremel、 Google PowerDrill、 Druid、 kdb+

安装

本例子为centos7为平台,通过rpm包的方式安装,首先下载rpm包,下载地址如下:

https://packages.clickhouse.com/rpm/stable/

1、安装所有的文件主要有三个,如下:

clickhouse-client-22.12.3.5.x86_64.rpm
clickhouse-common-static-22.12.3.5.x86_64.rpm
clickhouse-server-22.12.3.5.x86_64.rpm

2、执行yum命令安装,如下:

yum -y install *.rpm

3、执行命令启动clickhouse,如下:

systemctl enable clickhouse-server --now

此时的clickhouse的默认用户是default,并且没有密码,我们可以新增一个用户,并设置一个密码

新增用户并设置密码

1、编辑配置文件/etc/clickhouse-server/users.xml,在<users>标签下新增用户,如图:

  • 19行:明文密码,不推荐,推荐使用第20/21行的加密密码
  • 22行:开启SQL工作流,可用于配置权限实体,如果关闭就配置为0
  • 23行:用户访问来源列表,本例子为所有
  • 24行:用户配置文件,这里设置为default,实际可设置单独文件
  • 25行:资源配额,这里也设置为default

具体用法可参考文档如下:

https://clickhouse.com/docs/zh/operations/settings/settings-users#access_management-user-setting

如果要使用SHA256加密后的密码,请将其放置在 password_sha256_hex 配置段,生成密码命令为:

 PASSWORD=$(base64 < /dev/urandom | head -c8); echo "你的密码"; echo -n "你的密码" | sha256sum | tr -d '-'

结果的第一行是密码。 第二行是相应的SHA256哈希,把第二行填在配置段中

2、修改/etc/clickhouse-server/config.xml文件,配置listen为0.0.0.0,如图:

注:如果不配置,那么8123端口监听在127.0.0.1,只能本地连接,无法远程连接

3、通过DBeaver工具测试连接,可以发现连接成功,如图:

使用自带的客户端连接

clickhouse自带了一个客户端,名为clickhouse-client,通过此客户端也可连接到服务端,从而执行命令,连接方法如下:

clickhouse-client --user gongguan --password

输入密码后即可登录成功,如图:

登录成功后即可执行相关命令,clickhouse的命令和mysql比较类似,如图:

其余命令如下:

  • 进入数据库:use dbname
  • 显示表: show tables;
  • 创建库: create database dbname;
  • 查看表:select * from tablename;

更多用法参考官方文档: ClickHouse SQL 语句 | ClickHouse Docs

标签