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 | # 设置日志级别 |

相关推荐
言之。2 天前
Python调用DeepSeek API查询ClickHouse
windows·python·clickhouse
zhglhy3 天前
ckman将单节点ClickHouse转为集群方案
clickhouse·ckman
葡萄月令with蒲公英4 天前
使用clickhouse_connect从csv导入数据到clickhouse报错
clickhouse
韩金群6 天前
centos离线安装配置clickhouse
linux·clickhouse·centos
谷新龙0019 天前
pg_clickhouse插件,在postgresql中借助clickhouse借用OLAP能力
数据库·clickhouse·postgresql
wending-Y9 天前
clickhouse 物化视图数据查询不稳定分析
clickhouse
l1t12 天前
PostgreSQL pg_clickhouse插件的安装和使用
数据库·clickhouse·postgresql·插件
honder试试13 天前
Springboot实现Clickhouse连接池的配置和接口查询
spring boot·后端·clickhouse
Mr_wilson_liu13 天前
通过DBeaver22.0.5 连接数据库ck(clickhouse)、pg(postgres)
数据库·clickhouse