快速创建ClickHouse集群并进行统计分析
ClickHouse为您提供方便易用、灵活稳定的云端ClickHouse托管服务。只需要几分钟,便可完成海量数据查询数据仓库的搭建,简单轻松地完成对数据的实时查询分析,提升数据价值挖掘的整体效率。云数据仓库ClickHouse是一种基于MPP(大规模并行处理)架构的数仓服务,基于ClickHouse优异的查询性能,查询效率数倍于传统数据仓库。
背景信息
假定这是一张学生成绩表信息,使用客户端实现业务操作:
- 创建用户信息表demo_t。
- 在用户信息中新增访问性别、科目。
- 根据用户user_id查询用户的基本信息。
- 业务结束后,删除用户信息表。
表1 成绩表 user_id
name
sex
subject
score
time
10000
A
1
语文
89
2023-07-01 09:00:00
10001
B
0
数学
132
2023-07-01 09:00:00
10002
C
0
数学
90
2023-07-02 09:00:00
10003
D
0
英语
120
2023-07-01 14:00:00
10004
E
1
语文
101
2023-07-01 09:00:00
10005
F
1
语文
110
2023-07-01 09:00:00
表2 参数说明 参数
数据
说明
user_id
10000
用户id,每个用户唯一识别id。
name
2023-07-01 09:00:00
数据入库时间。
sex
A
学生姓名。
subject
1
性别女(0代表男生)。
score
语文
代表学科。
time
89
代表学成绩。
准备工作
- 已注册华为账号并开通华为云,具体请参见注册华为账号并开通华为云,且在使用CloudTable前检查账号状态,账号不能处于欠费或冻结状态。
- 已创建虚拟私有云和子网,参见创建虚拟私有云和子网。
步骤一:购买ClickHouse集群
- 登录表格存储服务控制台。
- 控制台左上角选择区域。
- 单击“集群管理”进入集群管理界面。
- 单击集群管理界面右上角的“购买集群”,进入购买集群页面配置相关参数(安全组规则配置端口请参见ClickHouse安全规则组)。
- 单击“立即购买”,进入确认规格页面,确认无误,单击“完成”。
- 返回集群列表查看创建集群进度,当集群状态为“服务中”时,集群创建成功,详细参见创建ClickHouse集群。
步骤二:下载ClickHouse客户端和客户端校验文件
- 登录表格存储服务控制台。
- 在控制台左上角选择区域。
- 单击“帮助”,进入帮助页面。
- 单击帮助页面右侧“常用链接 > ClickHouse客户端下载”,下载客户端安装包。
- 单击“客户端校验文件下载”,下载校验文件。
步骤三:准备弹性云服务器
- 购买弹性云服务器,登录ECS控制台。
- 控制台左上角选择区域。
- 单击左侧的服务列表,选择“计算 > 弹性云服务器 ECS”,进入弹性云服务器管理界面。
- 单击页面右上角“购买弹性云服务器”,进入配置界面。
- 配置弹性云服务器参数:基础配置、实例、操作系统、存储备份、网络、安全组、公网访问、云服务器管理、高级配置、购买量。
- 参数配置后,勾选“协议”并单击“立即购买”。ECS创建成功后会默认开机。
具体请参见弹性云服务“自定义购买ECS”章节。
为了确保集群连接成功VPC、安全组必须与ECS保持一致。
步骤四:添加安全组
- 获取本地主机IP,按键盘中“win+R”,弹出运行界面。
- 在输入框中输入“cmd”,单击“确定”,进入cmd运行窗口,
- 在命令窗口输入“ipconfig”,单击“回车”,查询本机IP。
- 登录ECS服务控制台。
- 进入“弹性云服务器 ”列表页面,单击“弹性云服务名称 > 基本信息 > 安全组名称 > 入方向规则”,进入入方向规则页面。
- 单击页面右上角的“添加规则”,弹出“添加入方向规则”页面。
- 源地址中填写步骤3中获取的本地IP地址。单击“确定”安全组添加完成。
步骤五:安装ClickHouse客户端并校验客户端
用户在弹性云服务器里可以通过手动安装客户端的方法安装客户端。
- 使用SSH登录工具(如PuTTY)通过“弹性IP”远程登录到Linux弹性云服务器。
具体登录操作步骤请参见《弹性云服务器用户指南》中的“登录Linux弹性云服务器 > SSH密码方式登录”。
- 将步骤二中下载的客户端传输到Linux弹性云服务器。
- 安装客户端,连接集群。
- 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。
具体登录操作步骤请参见《弹性云服务器用户指南》中的“ SSH密码方式登录”。
- 进入SSH工具的根目录。
cd /
- 在根目录中新建一个文件夹。
mkdir 文件夹名
- 进入新建的目录中。
cd /文件夹名/
- 将客户端放在新建的目录下。
- 解压客户端。
tar -zxf 客户端包名
- 解压“客户端校验文件”,与客户端解压在同一个目录下。
- 解压“客户端校验文件”。
cd <客户端校验文件存放路径> tar xzvf Client_sha256.tar.gz
- 获取客户端校验码。
sha256sum ClickHouse_Client_23.3.tar.gz
- 查看客户端校验文件中的校验码,并与客户端校验码进行对比。如果对比结果一致,代表客户端未被篡改,如果对比结果不一致,则代表客户端篡改。
less ClickHouse_Client_23.3.tar.gz.sha256
- 解压“客户端校验文件”。
- 加载so。
sh install.sh
- 进入bin目录,加权限。
cd bin/
加权限。
chmod 700 clickhouse
- 然后执行以下命令连接ClickHouse集群,端口
安全集群连接命令,详细操作请参见安全集群连接步骤。
./clickhouse client --host 集群内网地址 --port 9440 --user admin --password password --secure --config-file /root/config.xml
- 集群内网地址:集群详情页面中集群访问地址,这里替换成您自己购买的集群的访问地址。
- password为您购买集群时设置的密码,如果有特殊符号,特殊符号前面需要\进行转义,如果密码整体用单引号括起来,则特殊字符不需要转义。
- 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。
步骤六:插入数据
- 创建数据库。
create database DB_demo;
- 使用数据库。
use DB_demo;
- 创建表。
create table DB_demo_t(user_id Int32,name String,sex Tinyint ,subject String,score Int32,time datetime)engine=TinyLog;
- 插入数据。
insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10000','A','1','语文','89','2023-07-01 09:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10001','B','0','数学','132','2023-07-01 09:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10002','C','0','数学','90','2023-07-02 09:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10003','D','0','英语','120','2023-07-01 14:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10004','E','1','语文','101','2023-07-01 09:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10005','F','1','语文','110','2023-07-01 09:00:00');
- 查询数据。
- 查询导入的数据。
host-172-16-13-95 :) select * from DB_demo_t; SELECT * FROM DB_demo_t Query id: 4e119f77-0592-4131-bbe2-31f42bc069a1 ┌─user_id─┬─name─┬─sex─┬─subject─┬─score─┬────────────────time─┐ │ 10000 │ A │ 1 │ 语文 │ 89 │ 2023-07-01 09:00:00 │ │ 10001 │ B │ 0 │ 数学 │ 132 │ 2023-07-01 09:00:00 │ │ 10002 │ C │ 0 │ 数学 │ 90 │ 2023-07-02 09:00:00 │ │ 10003 │ D │ 0 │ 英语 │ 120 │ 2023-07-01 14:00:00 │ │ 10004 │ E │ 1 │ 语文 │ 101 │ 2023-07-01 09:00:00 │ │ 10005 │ F │ 1 │ 语文 │ 110 │ 2023-07-01 09:00:00 │ └─────────┴──────┴─────┴────────┴───────┴─────────────────────┘ 6 rows in set. Elapsed: 0.004 sec.
- 查询导入的数据。
- 删除数据。
- 删除表。
drop table DB_demo_t;
- 删除数据库。
drop database DB_demo;
- 删除表。