华为云云耀云服务器L实例评测|云服务器使用docker部署ClickHouse

ClickHouse介绍

ClickHouse简介

ClickHouse是俄罗斯Yandex在2016年开源的用于在线分析处理(OLAP)的列式存储数据库。ClickHouse的全称是Click Stream DataWareHouse

列式存储

列式存储(Column oriented Storage)并不是一项新技术,它最早的时间可以追溯到1983年。然而,受限于早期的硬件条件和使用场景,主流的事务型数据库(OLTP)大多采用行式存储,直到近几年分析型数据库(OLAP)的兴起,列式存储这一概念才再次被提起。

列式存储的概念

与行式存储将每一行所有数据存在一个block中不同,列式存储当每一条新数据到来的时候,每一列会单独存储,查询时只有涉及到的列会被读取。

列式存储的优点及使用场景

优点
  • 更好的性能:列式存储由于每一列单独存放,数据就是索引,所以在访问数据的时候只访问关心的字段部分,这将减少访问的吞吐量和系统的IO。
  • 更高效压缩:列式存储同一列的数据类型一致,数据特征相似,可以利用磁盘压缩算法进行高效压缩。
  • 更方便的大数据处理:ClickHouse支持数据分区和合并树引擎,这使得对大规模数据集的查询和分析更加高效。
应用场景

列式存储适合数据分析类场景,比如进行客户流量预测,需要对数据进行反复的遍历,由于列式存储相对于行式存储的压缩比较高,存储量更小,读取速度更快。

部署流程

部署ClickHouse Server与Client

由于只是学习使用ClickHouse,因此我会将这两个服务安装在同一台云服务器上。

部署ClickHouse Server

拉取ClickHouse Server镜像

docker pull yandex/clickhouse-server
在这里插入图片描述

运行ClickHouse Server服务

ClickHouse Server的docker运行命令如下:
docker run
-d
-p 8123:8123
--name clickhouse-server
--ulimit nofile=262144:262144
--volume=/root/click-house/click-house-server:/var/lib/clickhouse yandex/clickhouse-server
参数含义:

 docker run :Docker 命令,用于运行一个容器。 
-d :以后台(detached)模式运行容器。 
-p 8123:8123:将服务器8123端口绑定至docker容器的8123端口
--name clickhouse-server :指定容器名称,这里是 "clickhouse-server"。 
--ulimit nofile=262144:262144 :设置容器中 ClickHouse 进程的文件描述符限制。这里设置为 262144,即最大打开文件数。 
-volume=/root/click-house/click-house-server:/var/lib/clickhouse :这是将宿主机的目录  /root/click-house/click-house-server挂载到容器中的  /var/lib/clickhouse  目录,用于持久化 ClickHouse 数据。 
-  yandex/clickhouse-server :这是指定所使用的 ClickHouse 服务器镜像。 

命令执行后使用docker ps查看运行情况
在这里插入图片描述
可以看到服务已经正常启动了

部署ClickHouse Client

拉取ClickHouse Client镜像

docker pull yandex/clickhouse-client
在这里插入图片描述

启动ClickHouse Client

docker run -it --rm --link clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server

参数含义:

docker run :Docker 命令,用于运行一个容器。 
-it :表示以交互模式运行容器,并分配一个伪终端。 
--rm :表示容器在退出后将被自动删除。 
--link clickhouse-server:clickhouse-server :将 ClickHouse 服务器容器链接到当前容器,并将其命名为  clickhouse-server 。 
yandex/clickhouse-client :指定所使用的 ClickHouse 客户端镜像。 
--host clickhouse-server :指定 ClickHouse 客户端连接的目标主机,这里是  clickhouse-server 。 

在这里插入图片描述
可以看到docker客户端已经运行 并且进入了ClickHouse Client所在的容器中。

创建数据库

show databases可以查看ClickHouse Client中所有的数据库
CREATE DATABASE testDB创建一个名称为testDB的数据库
在这里插入图片描述

修改数据库密码

到这里,ClickHouse的任务其实就结束了,我们需要进入ClickHouse Server容器中,修改数据库的密码
docker exec -it clickhouse-server /bin/bash
在容器上安装vim
apt-get update
apt-get install vim -y
vim安装完成后来到/etc/clickhouse-server目录,这个目录下的users.xml文件中保存了用户名与密码
在这里插入图片描述 vi users.xml
编辑users.xml文件,可以看到数据库中已经有一个默认用户default,找到标签<password></password>
这里有明文和密文两种密码形式,这里我选择了明文
在这里插入图片描述

保存退出后重启容器docker restart clickhouse-server
在这里插入图片描述

使用DataGrip连接ClickHouseDB

选择数据源类型为ClickHouse,下载必要依赖,输入之前设置的用户名与密码
在这里插入图片描述
可以看到已经连接成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值