1.内置工具

ClickHouse除了提供基础的服务端与客户端程序之外,还内置了clickhouse-local和clickhouse-benchmark两种实用工具,现在分别说明它们的作用。

1.1. clickhouse-local

clickhouse-local可以独立运行大部分SQL查询,不需要依赖任何ClickHouse的服务端程序,它可以理解成是ClickHouse服务的单机版微内核,是一个轻量级的应用程序。clickhouse-local只能够使用File表引擎(关于表引擎的更多介绍在后续章节展开),它的数据与同机运行的ClickHouse服务也是完全隔离的,相互之间并不能访问。clickhouse-local是非交互式运行的,每次执行都需要指定数据来源,例如通过stdin标准输入,以echo打印作为数据来源:

echo -e "1\n2\n3" | clickhouse-local -q "create table test_table (id Int64) engine=File(CSV,stdin);select id from test_table;"

grafana clickhouse 插件 离线 clickhouse客户端工具_数据

1.1.1. clickhouse-local的核心参数

(1)-S / --structure:表结构的简写方式
(2)-N / --table:表名称,默认值是table
(3)-if / --input-format:输入数据的格式,默认值是TSV
(4)-f / --file:输入数据的地址,默认值是stdin标准输入。
(5)-q / --query:待执行的SQL语句,多条语句之间以分号间隔。
完整的参数列表可以通过–help查阅。

1.2. clickhouse-benchmark

clickhouse-benchmark是基准测试的小工具,它可以自动运行SQL查询,并生成相应的运行指标报告,例如执行下面的语句启动测试:

(base) [root@ck1 ~]# echo "select * from system.numbers limit 100"|clickhouse-benchmark --password ch123  -i 5
Loaded 1 queries.

Queries executed: 5.

localhost:9000, queries 5, QPS: 109.683, RPS: 10968.310, MiB/s: 0.084, result RPS: 10968.310, result MiB/s: 0.084.

0.000%		0.003 sec.	
10.000%		0.003 sec.	
20.000%		0.004 sec.	
30.000%		0.004 sec.	
40.000%		0.007 sec.	
50.000%		0.007 sec.	
60.000%		0.007 sec.	
70.000%		0.015 sec.	
80.000%		0.015 sec.	
90.000%		0.017 sec.	
95.000%		0.017 sec.	
99.000%		0.017 sec.	
99.900%		0.017 sec.	
99.990%		0.017 sec.

执行完毕后,会出具包含QPS、RPS等指标信息的报告:

localhost:9000, queries 5, QPS: 109.683, RPS: 10968.310, MiB/s: 0.084, result RPS: 10968.310, result MiB/s: 0.084.

完整的参数列表,可以通过–help查阅

1.2.1. clickhouse-benchmark的核心参数

(1)-i / --iterations:SQL查询执行的次数,默认值是0。
(2)-c / --concurrency:同时执行查询的并发数,默认值是1。
(3)-r / --randomize:在执行多条SQL语句的时候,按照随机顺序执
(4)-h / --host:服务端地址,默认值是localhost。clickhouse-benchmark支持对比测试,此时需要通过此参数声明两个服务端的地址,如下:

执行语句

(base) [root@ck1 ~]# echo "select * from system.numbers limit 100"|clickhouse-benchmark --password ch123  -i 5 -h localhost -h localhost

Loaded 1 queries.
Queries executed: 5.

在这个用例中,使用-h参数指定了两个相同的服务地址(在真实场景中应该声明两个不同的服务),基准测试会分别执行2次,生成相应的指标报告:

#第一个服务
localhost:9000, queries 1, QPS: 99.039, RPS: 9903.853, MiB/s: 0.076, result RPS: 9903.853, result MiB/s: 0.076.
#第二个服务
localhost:9000, queries 4, QPS: 188.577, RPS: 18857.732, MiB/s: 0.144, result RPS: 18857.732, result MiB/s: 0.144.

在对比测试中,clickhouse-benchmark会通过抽样的方式比较两组查询指标的差距,在默认的情况下,置信区间为99.5%:

0.000%		0.010 sec.	0.005 sec.	
10.000%		0.010 sec.	0.005 sec.	
20.000%		0.010 sec.	0.005 sec.	
30.000%		0.010 sec.	0.005 sec.	
40.000%		0.010 sec.	0.005 sec.	
50.000%		0.010 sec.	0.005 sec.	
60.000%		0.010 sec.	0.005 sec.	
70.000%		0.010 sec.	0.005 sec.	
80.000%		0.010 sec.	0.005 sec.	
90.000%		0.010 sec.	0.006 sec.	
95.000%		0.010 sec.	0.006 sec.	
99.000%		0.010 sec.	0.006 sec.	
99.900%		0.010 sec.	0.006 sec.	
99.990%		0.010 sec.	0.006 sec.

由于在这个示例中指定的两个对比服务相同,所以在99.5%置信区间下它们没有区别
(5)–confidence:设置对比测试中置信区间的范围
完整的参数列表,可以通过–help查阅。


下篇博文介绍讲解Clickhouse20.1.6.13如何定义数据表及表的基本操作