ClickHouse提供了原生的命令行客户端clickhouse-client
来操作ClickHouse。
clickhouse-client
可以在交互和非交互(批处理)模式下使用。
交互模式下,一次登录,可以执行多次查询。一般用不到,要查询数据直接用客户端软件就行了,如DBeaver。
非交互模式一般用于使用脚本执行查询语句。
clickhouse-client [参数]
可以通过两种方式来配置参数:
--host, -h
-– 服务端的host名称, 默认是localhost
。可以选择使用host名称或者IPv4或IPv6地址。--port
– 连接的端口,默认值:9000。注意HTTP接口以及TCP原生接口使用的是不同端口。--user, -u
– 用户名。 默认值:default
。--password
– 密码。 默认值:空字符串。--query, -q
– 使用非交互模式查询。--database, -d
– 默认当前操作的数据库. 默认值:服务端默认的配置(默认是default
)。--multiline, -m
– 如果指定,允许多行语句查询(Enter仅代表换行,不代表查询语句完结)。--multiquery, -n
– 如果指定, 允许处理用;
号分隔的多个查询,只在非交互模式下生效。--format, -f
– 使用指定的默认格式输出结果。--vertical, -E
– 如果指定,默认情况下使用垂直格式输出结果。这与–format=Vertical
相同。在这种格式中,每个值都在单独的行上打印,这种方式对显示宽表很有帮助。--time, -t
– 如果指定,非交互模式下会打印查询执行的时间到stderr
中。--stacktrace
– 如果指定,如果出现异常,会打印堆栈跟踪信息。--config-file
– 配置文件的名称。--secure
– 如果指定,将通过安全连接连接到服务器。--history_file
— 存放命令历史的文件的路径。通过配置文件指定时,使用下面列表中存在的第一个:
--config-file
参数指定。./clickhouse-client.xml
~/.clickhouse-client/config.xml
/etc/clickhouse-client/config.xml
<config>
<user>username</user>
<password>password</password>
<secure>False</secure>
</config>
cat data.csv |
clickhouse-client --host 127.0.0.1 --port 9000 --database test_db --user default \
--password='123456' --query="INSERT INTO asd FORMAT CSV" --format_csv_delimiter="|";
clickhouse-client --host 127.0.0.1 --port 9000 --database test_db --user default \
--password='123456' --query="select * from asd limit 100" --format CSV --format_csv_delimiter="|"
clickhouse-client --host 127.0.0.1 --port 9000 --database test_db --user default \
--password='123456' --multiquery < multi.sql
\G
来替代分号或者在分号后面。每个字段的值会打印在不同的行中,数据列很多时比较友好。--format
就是输入输出格式,常用的就是CSV
,所有的格式见输入输出格式-m
参数,按Enter就执行查询了;如果要执行多行查询语句,需要在换行之前加上反斜杠\
。指定了-m
就不用加了。clickhouse-client官方文档:https://clickhouse.tech/docs/zh/interfaces/cli/
format官方文档:https://clickhouse.tech/docs/zh/interfaces/formats/#formats