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="|"
执行sql文件
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
版权声明:本文为ifenggege原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。