clickhouse-client命令行参数及常用案例

郏实
2023-12-01

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

 类似资料: