一、ClickHouse是什么?
ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域,由俄罗斯最大的搜索引擎公司Yandex(相当国内的百度)于2016年开源。Yandex有着许多数据分析的业务,其中数据量最大的业务,就是Yandex.Metrica(相当于百度的百度统计),这也就是ClickHouse出现的原因。由于其出色的性能,近年来发展非常迅猛,国内很多大厂都在生产环境中广泛使用。ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
二、为什么要使用ClickHouse?
一个字快,有些时候我们需要对生产数据进行大量的报表分析和统计,而使用OLTP (mysql) 数据库进行统计又太慢,影响生产。
三、CentOS下安装单机版ClickHouse
3.1 安装依赖
yum install yum-utils
3.2 导入镜像源
rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.repo
3.3 安装clickhouse的服务端和客户端
yum install -y clickhouse-server clickhouse-client
如果在线安装实在太慢,可以自行下载rpm包进行安装
https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/
如:
clickhouse-common-static-20.9.3.45-2.x86_64.rpm
clickhouse-server-20.9.3.45-2.noarch.rpm
clickhouse-client-20.9.3.45-2.noarch.rpm
注意,这三个rpm版本最好一致。
rpm -ivh *.rpm
3.4 启动服务
/etc/init.d/clickhouse-server start
3.5 进入客户端
clickhouse-client
clickhouse的目录结构
/etc/clickhouse-server:服务端的配置文件目录,包括全局配置 config.xml 和用户配置 users.xml
/var/lib/clickhouse:默认的数据存储目录,如果是生产环境可以将其修改到空间较大的磁盘挂载路径。可以通过修改
/etc/clickhouse-server/config.xml 配置文件中 、<tmp_path> 和<user_files_path> 标签值来设置。
/var/log/clickhouse-server:默认的日志保存目录。同样可以通过修改/etc/clickhouse-server/config.xml 配置文件中 和 标签值来设置。
/etc/cron.d/clickhouse-server:clickhouse server 的一个定时配置,用于恢复因异常中断的ClickHouse 服务进程。
~/.clickhouse-client-history (隐藏文件) 所有通过交互式命令行执行的sql历史记录。可使用ll -a命令查看
现在已经安装并启动好了一个clickhouse客户端,但没有密码验证谁都可以访问,所以要设置密码。
3.6 设置用户名密码
3.6.1 clickhouse的密码有2种形式,一种是明文,一种是写sha256sum的Hash值
官方不建议直接写明文密码,可以用以下命令生成密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD";
echo -n "$PASSWORD" | sha256sum | tr -d '-'
这样可以得到两行数据,第一行是密码明文
,第二行是密码密文
3.6.2 cilckhouse的配置文件默认地址/etc/clickhouse-server
vim users.xml
,找到 users --> default --> 标签下的password修改成password_sha256_hex
,并把密文填进去
<password_sha256_hex>密码密文</password_sha256_hex>
3.6.3 添加密码后,命令行启动的方式为
clickhouse-client -h ip地址 -d default -m -u default --password 密码明文
或者直接使用datagrip连接,用户名是default,密码是密码明文
3.6.4 开放外网访问,vim config.xml 找到 listen_host 标签,修改为以下
<listen_host>0.0.0.0</listen_host>
3.6.5 重启一下clickhouse服务
/etc/init.d/clickhouse-server restart
也可指定配置文件启动
nohup sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml &