clickhouse之clickhouse-client命令简介和使用

一、实验环境版本说明

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 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5b82e77d308048a6ac4904e3b9f21b96.png) ### 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 | # 设置日志级别 |

相关推荐
·云扬·12 小时前
3台机器搭建ClickHouse环形复制集群实践
clickhouse
一路向北⁢2 天前
APP企业级业务数据埋点系统(基于 Spring Boot & ClickHouse)
spring boot·后端·clickhouse·统计分析·埋点·pu·vu
温暖小土3 天前
ClickHouse vs Apache Doris:2026年实时OLAP数据库选型深度解析
数据库·数据仓库·clickhouse·apache
海边的椰子树3 天前
非常方便的MySQL迁移数据ClickHouse工具
数据库·mysql·clickhouse·迁移
JZC_xiaozhong3 天前
分析型数据库 ClickHouse 在数据中台中的集成
大数据·数据库·clickhouse·架构·数据一致性·数据孤岛解决方案·数据集成与应用集成
·云扬·3 天前
ClickHouse数据备份与恢复实战:从基础操作到工具应用
android·java·clickhouse
·云扬·4 天前
ClickHouse监控体系搭建:基于Prometheus+Grafana实现数据可视化
clickhouse·grafana·prometheus
·云扬·4 天前
ClickHouse副本配置全攻略:基于ZooKeeper实现高可用部署
clickhouse·zookeeper·debian
·云扬·4 天前
ClickHouse入门指南:从安装配置到核心数据类型解析
clickhouse
心丑姑娘4 天前
clickhouse支持行存吗?什么时候开始支持的
clickhouse