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 参数说明 参数
说明
10000
用户id,每个用户唯一识别id。
2023-07-01 09:00:00
数据入库时间。
A
学生姓名。
1
性别女(0代表男生)。
语文
代表学科。
89
代表学成绩。
步骤一:购买ClickHouse集群
- 登录表格存储服务控制台。
- 在控制台左上角选择区域。
- 单击“集群管理”进入集群管理界面。
- 单击集群管理界面右上角的“购买集群”,进入购买集群页面配置相关参数。
- 单击“立即购买”,进入确认规格页面,确认无误,单击“完成”。
- 返回集群列表查看创建集群进度,当集群状态为“服务中”时,集群创建成功,详细参见创建ClickHouse集群。
步骤二:下载ClickHouse客户端
- 登录表格存储服务控制台。
- 在控制台左上角选择区域。
- 单击“帮助”,进入帮助页面。
- 单击帮助页面右侧“常用链接 > ClickHouse客户端下载”,下载客户端安装包。
步骤三:准备弹性云服务
- 购买弹性云服务器。
- 登录ECS控制台。
- 单击管理控制台左上角的,选择区域。
- 单击左侧的服务列表图标,选择“计算 > 弹性云服务器 ECS”。
- 单击“购买弹性云服务器”。
- 配置弹性云服务器参数。
- 选择CPU架构和规格。
图1 规格图
- 选择镜像和磁盘规格。
图2 选择镜像和磁盘规格
- 选择CPU架构和规格。
- 单击下一步:网络配置。
- 选择VPC和安全组。
图3 VPC图
- 选择购买弹性公网IP,公网带宽选择“按流量计费”。
图4 公网IP图
- 选择VPC和安全组。
- 单击下一步“高级配置”。
图5 高级配置
- 单击下一步“确认配置”,确认配置参数。
图6 确认配置参数页面
- 选择“企业项目”,勾选“协议”,确认配置信息后,单击“立即购买”。
- 返回弹性云服务器列表页面,查看弹性云服务器的创建进度。
步骤四:安装ClickHouse客户端
用户在弹性云服务器里可以通过手动安装客户端的方法安装客户端。
- 使用SSH登录工具(如PuTTY)通过“弹性IP”远程登录到Linux弹性云服务器。
具体登录操作步骤请参见《弹性云服务器用户指南》中的“登录Linux弹性云服务器 > SSH密码方式登录”。
- 将步骤二中下载的客户端传输到Linux弹性云服务器。
- 安装客户端,连接集群。
- 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。
具体登录操作步骤请参见《弹性云服务器用户指南》中的“ SSH密码方式登录”。
- 进入SSH工具的根目录。
cd /
- 在根目录中新建一个文件夹。
mkdir 文件夹名
- 进入新建的目录中。
cd /文件夹名/
- 将客户端放在新建的目录下。
- 解压客户端。
tar -zxf 客户端包名
- 加载so。
sh install.sh
- 进入bin目录,加权限。
cd bin/
加权限。
chmod 700 clickhouse
- 然后执行以下命令连接ClickHouse集群,端口
安全集群连接命令,详细操作请参见安全集群连接步骤。
./clickhouse client --host 集群内网地址 --port 端口 --user admin --password password --secure --config-file /root/config.xml
- 集群内网地址:集群详情页面中集群访问地址,这里替换成您自己购买的集群的访问地址。
- password为您购买集群时设置的密码,如果有特殊符号,特殊符号前面需要\进行转义,如果密码整体用单引号括起来,则特殊字符不需要转义。
表3 自定义安全规则组 方向
策略
协议端口/范围
类型
目的/源地址
用途
出方向
允许
全部
IPv4/IPv6
0.0.0.0/0
出方向放行。
入方向
允许
8123
CloudTable ClickHouse集群所在的安全组。
ClickHouse的Http协议端口。
允许
9000
ClickHouse的TCP协议端口。
允许
8443
ClickHouse的Https协议端口。
允许
9440
ClickHouse的安全TCP安全端口。
- 使用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;
- 删除表。