找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2579

积分

0

好友

361

主题
发表于 3 天前 | 查看: 15| 回复: 0

一、clickhouse-benchmark

clickhouse-benchmark 是 ClickHouse 官方提供的命令行基准测试工具,它的主要用途是模拟负载、评估查询性能,以及对比不同配置或版本间的差异。在进行系统调优或架构评估时,这是一个非常实用的帮手。

1、语法

使用前,先来了解其基本语法格式:

$ clickhouse-benchmark --query 查询语句 --ignore-error 忽略错误 -c 同时发送的查询数量 -C 逐步增加并行查询数量直至指定值 -d 报告之间的时间间隔(秒)-h 服务器主机名 -i 查询次数 --port 服务器端口 --cumulative 输出累计数据 --其他参数

2、执行一条SQL

我们可以用它来执行单条 SQL 并查看性能指标。例如,查询一个系统表,并指定执行3次。如果不使用 -i 参数,默认会无限次执行下去。

[root@LQ clickhouse-server]# clickhouse-benchmark --query “select * from system.users” -i 3
Loaded 1 queries.

Queries executed: 3 (100%).

localhost:9000, queries: 3, QPS: 19.786, RPS: 19.786, MiB/s: 0.003, result RPS: 19.786, result MiB/s: 0.003.

0%              0.002 sec.
10%             0.002 sec.
20%             0.002 sec.
30%             0.002 sec.
40%             0.002 sec.
50%             0.002 sec.
60%             0.002 sec.
70%             0.002 sec.
80%             0.002 sec.
90%             0.002 sec.
95%             0.002 sec.
99%             0.002 sec.
99.9%           0.002 sec.
99.99%          0.002 sec.

3、执行多条SQL

如果想对多条 SQL 进行测试,可以先将这些语句写进一个文件,然后运行该文件。

首先,创建 ben.txt 文件,内容如下:

#ben.txt
select * from system.users;
select * from system.tables;

接着,执行命令:

clickhouse-benchmark -i 3 < ben.txt

4、比较多台服务器性能

clickhouse-benchmark 支持指定多个主机地址和端口,命令会将查询发送到所有指定的服务器并发执行,便于通过输出报告对比不同集群或节点的性能差异。这对于数据库/中间件/技术栈的选型与容量规划很有帮助。

clickhouse-benchmark --query “select * from system.users” --host=localhost --port=9000 --host=localhost --port=9000 -i 10

执行结果示例

[root@LQ clickhouse-server]# clickhouse-benchmark --query “select * from system.users” --host=localhost --port=9000 --host=localhost --port=9000 -i 10
Loaded 1 queries.

Queries executed: 10 (100%).

localhost:9000, queries: 4, QPS: 21.785, RPS: 21.785, MiB/s: 0.003, result RPS: 21.785, result MiB/s: 0.003.
localhost:9000, queries: 6, QPS: 32.677, RPS: 32.677, MiB/s: 0.005, result RPS: 32.677, result MiB/s: 0.005.

0%              0.003 sec.      0.002 sec.
10%             0.003 sec.      0.002 sec.
20%             0.003 sec.      0.002 sec.
30%             0.003 sec.      0.002 sec.
40%             0.003 sec.      0.002 sec.
50%             0.004 sec.      0.002 sec.
60%             0.004 sec.      0.002 sec.
70%             0.004 sec.      0.002 sec.
80%             0.004 sec.      0.002 sec.
90%             0.004 sec.      0.003 sec.
95%             0.004 sec.      0.003 sec.
99%             0.004 sec.      0.003 sec.
99.9%           0.004 sec.      0.003 sec.
99.99%          0.004 sec.      0.003 sec.

Difference at 99.5% confidence: mean difference is 0.0012757649166666666, but confidence interval is 0.0008286564051865036

二、ClickHouse Playground

ClickHouse Playground 是一个线上沙盒环境,它允许用户无需自行搭建服务器或集群,即可通过即时运行查询来试用和探索 ClickHouse。Playground 中预先提供了若干示例数据集,非常适合初学者或开发者快速验证想法。

1、可以使用客户端直接连接

你可以使用本地的 clickhouse-client 直接连接到 Playground 服务器:

clickhouse-client --secure --host play.clickhouse.com --user explorer

2、可以登录网站使用网页客户端

你也可以直接访问 Playground 网站,使用其内置的网页客户端查询示例数据。需要注意的是,该环境通常仅开放查询权限,不允许用户创建新表或插入数据,主要用于体验和教学。

三、clickhouse-compressor

clickhouse-compressor 是一个用于数据压缩和解压缩的独立命令行工具,它支持 ClickHouse 常用的压缩算法,如 LZ4 和 ZSTD。

1、使用LZ4压缩数据

基本用法是通过标准输入输出流进行压缩:

clickhouse-compressor < input_file > output_file

示例:将 test.json 文件压缩为 LZ4 格式。

clickhouse-compressor < test.json > test.json.lz4

2、将LZ4格式的数据解压缩

使用 --decompress 参数进行解压:

clickhouse-compressor --decompress < input_file > output_file

示例:解压 test.json.lz4 文件。

clickhouse-compressor --decompress < test.json.lz4 > test.json

3、使用ZSTD压缩数据

若想使用 ZSTD 算法进行压缩,需要添加 --zstd 参数:

clickhouse-compressor --zstd < input_file > output_file

示例:将 test.json 文件压缩为 ZSTD 格式。

clickhouse-compressor --zstd < test.json > test.json.zst

4、使用ZSTD解压数据

解压 ZSTD 格式文件时,需要同时指定 --zstd--decompress 参数:

clickhouse-compressor --zstd --decompress < input_file > output_file

示例:解压 test.json.zst 文件。

clickhouse-compressor --zstd --decompress < test.json.zst > testzst.json

掌握这三个实用工具,能让你在 ClickHouse 的性能评估、快速体验和数据预处理等场景下游刃有余,从而更高效地完成数据平台的日常运维与开发工作。想了解更多关于后端 & 架构的实战技巧,欢迎访问云栈社区




上一篇:开发者共识:反C++与反微软的时代过去了吗?
下一篇:Java Web框架全景对比与选型指南:从Spring Boot到云原生新锐
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 01:45 , Processed in 0.353635 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表