文章目录
clickhouse提供了一个本地命令行客户端:clickhouse-client
一.客户端支持的配置项
1. 配置项的配置方式
1.1 从命令行传入
如果是命令行设置的配置项,那么优先级是最高的。当和配置文件中的配置项有重合的时候,会优先使用命令行配置
1.2 配置文件
当在配置文件中配置了配置项的时候,那么会覆盖掉该配置项的默认值和设置
2. 配置项列表
- --host,-h:用来配置服务器,默认是localhost。值可以是服务器名称或 IPv4 或 IPv6 地址
- --post:要连接的端口,默认是9000。注意http接口和native接口使用的是不同的端口
- --user,-u:用户名,默认是default
- --password:密码,m偶人是‘’(空字符串)
- --query,-q:在非交互模式场景下要处理的查询。使用时必须要指定query或queries-file选项
- --queries-file,-qf:存放查询语句的文件路径。使用时必须要指定query或queries-file选项
- --database,-d: 选择进入客户端之后的默认数据库。默认是服务器设置的默认数据库(default)
- --multiline,-m:标识是否允许多行查询,即不按enter发送查询命令,而是‘;’
- --multiquery,-n:如果指定了,允许处理以‘;’分隔的多个查询
- --format,-f:使用指定的默认格式输出结果
- --vertical,-E:如果指定了,就使用垂直格式输出结果。和format=Vertical.是一样的效果。在这种格式中,每一个值都单独占据一行,在显示宽表的时候会比较有帮助
- --time,-t:如果指定了,则在非交互模式下会将查询时间打印到stderr
- --stacktrace :如果指定了,那么在发生异常的时候,会打印堆栈跟踪
- --config-file:指定使用的配置文件的名称
- --secure:如果指定了,则会在安全模式下连接到服务器
- --history_file:指定了包含命令执行记录的文件路径
注:如果是用配置项全名的话,是"配置项=value"的格式。如果是缩写的话,就是"配置项 value"的格式
clickhouse-client --database=test --query="SELECT * FROM t2"
clickhouse-client -d test -q "SELECT * FROM t2"
注:
一般我们使用的服务器和客户端也是需要相互兼容的。如果不兼容的话,会有如下的提醒
ClickHouse client version is older than ClickHouse server. It may lack support for new features.
二. 客户端用法
客户端可以在交互模式和非交互(批处理)模式下使用
1.非交互模式
1.1 -- query 参数指定执行语句
clickhouse-client --database=test --query='insert into t2(a,b) values(1,2)'
clickhouse-client --database=test --query='select * from t2'
1.2 -- query 参数和发送到stdin的数据联合使用
echo -ne '2,3'|clickhouse-client --database=test --query='insert into t2 format CSV'
clickhouse-client --database=test --query='select * from t2'
在批处理格式下,默认的数据格式是 TabSeparated。当然我们也可以在FORMAT 子句中设置格式。
默认情况下,批处理格式只支持当个查询。
如果想要执行多个查询的话,需要在脚本里面执行。可以使用--multiquery参数。适用于除了insert之外的所有查询。查询结果会连续输出,没有额外的分隔符。
如果要执行大量查询的话,建议为每一个查询都启用一个客户端,启用一个客户端会耗时约数十毫秒
2.交互模式
所谓的交互模式,指的是通过执行clickhouse-client,进入客户端后,在客户端里执行查询
2.1 multiline
2.1.1 如果在进入客户端的时候没有指定multiline,那么输入查询语句的时候,不需要加’;’,直接回车就会执行
如果查询语句有多行的话,那么第一行输出之后 输入 \,然后回车,就不会执行,之后就可以继续输入第二行
2.1.2 如果在进入客户端的时候指定了multiline(默认是不指定的)的话,那么就需要用;来指定sql语句的输入完毕
2.2 可以用\G来指定垂直打印
2.3. sql的执行记录被保留在~/.clickhouse-client-history.
2.4. 当执行查询操作的时候,客户端会显示的内容:
-
在默认情况下,如果查询操作执行的慢的,每秒更新进度不会超过10次。如果查询操作很快的话,那么就不会显示查询进度,而是直接显示结果
-
在解析sql语句之后会进行格式化的查询,可以用于debug
-
可以指定输出的结果格式,默认情况下,使用的格式是 PrettyCompact。可以在查询的 FORMAT 子句中更改格式,或者通过\G在查询末尾指定、使用命令行中的–formator–vertical参数或使用客户端配置文件来更改格式。
-
会显示查询的结果行数,用时,以及查询处理的平均速度
2.5. 快捷操作
可以使用Ctrl+C 取消长查询。但是,仍需要稍等片刻,让服务器中止请求。在某些阶段无法取消查询。如果不等待并再次按 Ctrl+C,客户端将退出。