一、实验环境版本说明
clickhouse-client 是ClickHouse的官方命令行客户端工具,用于连接ClickHouse服务器并执行SQL查询。本实验环境是在虚拟机下进行测试、验证和说明,系统环境信息如下:
- 操作系统:ctyunos 23.01
- clickhouse版本:25.12.1.649
- clickhouse-client版本:25.12.1.649
二、ctyunos系统安装clickhouse
1、安装yum扩展依赖包
root@ywserver \~\]# yum install -y yum-utils
2、添加clickhouse repo源
root@ywserver \~\]# yum-config-manager --add-repo
3、安装clickhouse、clickhouse-client
root@ywserver \~\]# yum install -y clickhouse clickhouse-client
4、启动clickhouse
root@ywserver \~\]# systemctl start clickhouse
三、使用示例
1、交互式查询
直接输入clickhouse-client命令,默认没有设置default账户密码,直接登录数据库。# 在交互模式下可以使用以下命令:
-- 切换数据库 : USE database_name;
-- 显示查询历史(按上下键)
-- 自动补全(按Tab键)
-- 多行查询(以分号结尾或使用\G)

2、指定主机和端口
实验--host参数可以连接本地或者远程clickhouse数据库。
root@ywserver clickhouse-server\]# clickhouse-client --host 127.0.0.1 --port 9000
3、使用SSL加密连接
可以使用SSL加密连接,前提是配置了SSL加密协议并监听了相关端口。
root@ywserver clickhouse-server\]# clickhouse-client --host=example.com --port=9440 --secure
4、使用用户名密码
root@ywserver clickhouse-server\]# clickhouse-client --user=default --password=your_password
5、 或交互式输入密码
root@ywserver clickhouse-server\]# clickhouse-client --user=default --ask-password
6、使用配置文件中的凭据
root@ywserver clickhouse-server\]# clickhouse-client --config-file=/etc/clickhouse-client/config.xml
7、查询系统信息
root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT version()" 25.12.1.649 \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT now()" 2025-12-28 09:55:18 \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT hostName()" ywserver
8、执行多条件查询
root@ywserver clickhouse-server\]# clickhouse-client --multiquery --query=" CREATE DATABASE IF NOT EXISTS test; CREATE TABLE test.example (id Int32, name String) ENGINE = MergeTree ORDER BY id; INSERT INTO test.example VALUES (1, 'Alice'), (2, 'Bob'); SELECT \* FROM test.example; " 1 Alice 2 Bob
9、指定输出格式
CSV格式
root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.databases" --format=CSV # JSON格式 clickhouse-client --query="SELECT name, engine FROM system.databases" --format=JSON # TSV格式(适合管道处理) clickhouse-client --query="SELECT \* FROM system.tables LIMIT 5" --format=TSV # 垂直格式(查看宽表时有用) clickhouse-client --query="SELECT \* FROM system.settings WHERE name LIKE '%timeout%'" --format=Vertical
10、执行文件中的查询
root@ywserver clickhouse-server\]# clickhouse-client \< query.sql  ### 11、将查询结果保存到文件 > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.processes" --format=CSV \> processes.csv ### 12、管道操作 > # 与其他命令结合使用 > > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.errors" \| grep -i timeout > > # 统计数据 > > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.query_log WHERE event_date = today()" \| wc -l > > 53 > > # 转换为JSON处理,需要安装jq命令 > > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.metrics" --format=JSON \| jq '.data' ### 13、显示查询执行时间 > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM big_table LIMIT 1000000" --time > > 0.001 > > Received exception from server (version 25.12.1): > > Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Unknown table expression identifier 'big_table' in scope SELECT \* FROM big_table LIMIT 1000000. (UNKNOWN_TABLE) > > (query: SELECT \* FROM big_table LIMIT 1000000) ### 14、数据导入 > # 导入数据 > > \[root@ywserver clickhouse-server\]#cat data.csv \| clickhouse-client --query="INSERT INTO my_table FORMAT CSV" > > # 从压缩文件导入 > > \[root@ywserver clickhouse-server\]#zcat data.csv.gz \| clickhouse-client --query="INSERT INTO my_table FORMAT CSV" ### 15、监控和诊断 > # 查看当前连接 > > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.processes" > > # 查看系统指标 > > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.metrics" > > # 查看异步指标 > > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.asynchronous_metrics" > > # 查看事件 > > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.events" > > # 查看服务器设置 > > \[root@ywserver clickhouse-server\]# clickhouse-client --query="SELECT \* FROM system.settings WHERE changed" ## 四、参数简介 | 参数分类 | 参数 | 参数说明 | |:-------|:------------------|:-----------------------| | 连接参数 | --host, -h | # 服务器主机名(默认:localhost) | | 连接参数 | --port | # 端口号(默认:9000) | | 连接参数 | --user, -u | # 用户名(默认:default) | | 连接参数 | --password | # 密码 | | 连接参数 | --ask-password | # 交互式输入密码 | | 连接参数 | --secure | # 使用SSL加密连接 | | 查询参数 | --query, -q | # 执行查询语句 | | 查询参数 | --database, -d | # 指定默认数据库 | | 查询参数 | --multiline, -m | # 允许多行查询 | | 查询参数 | --multiquery, -n | # 允许多个查询用分号分隔 | | 查询参数 | ---format | # 指定输出格式 | | 查询参数 | --time | # 显示查询执行时间 | | 输出格式参数 | --format=Pretty | # 美观的表格格式(默认) | | 输出格式参数 | --format=CSV | # CSV格式 | | 输出格式参数 | --format=JSON | # JSON格式 | | 输出格式参数 | --format=TSV | # 制表符分隔 | | 输出格式参数 | --format=Vertical | # 垂直显示 | | 输出格式参数 | --format=Null | # 不输出结果 | | 其他参数 | --help | # 显示帮助信息 | | 其他参数 | --version | # 显示版本信息 | | 其他参数 | --progress | # 显示查询进度 | | 其他参数 | --echo | # 执行前打印查询语句 | | 其他参数 | --stacktrace | # 发生错误时显示堆栈跟踪 | | 其他参数 | --log-level | # 设置日志级别 |