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

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 # 设置日志级别
相关推荐
xhtdj1 天前
智源大会圆桌大模型没有终局具身智能可能是中国的 AlphaGo 时刻
人工智能·clickhouse·安全·动态规划
xhtdj4 天前
技术采用曲线回望二十年
运维·数据库·人工智能·clickhouse·动态规划
BestOrNothing_20154 天前
ROS2 C++ 小车控制完整实战(三):自定义 srv 服务通信保姆级教程
c++·service通信·ros2·client·server·srv
Taerge01105 天前
Doris, StarRocks, ClickHouse, Hologres, ES 对比,选型建议
大数据·clickhouse·elasticsearch
海南java第二人7 天前
ClickHouse 表引擎完全指南:从 MergeTree 到集成引擎的选型实践
clickhouse
lhyzws8 天前
CENTOS上的网络安全工具(三十七)SPARK on CLICKHOUSE
clickhouse
海南java第二人8 天前
用户行为漏斗分析是什么?ClickHouse 如何轻松实现?
clickhouse
时空无限9 天前
clickhouse 数据损坏无法启动问题修复
clickhouse
阿演10 天前
我把这个桌面数据库工具又升级了一轮:现在支持 ClickHouse,还能可视化建表和改表了
数据库·clickhouse·ai编程·数据库连接工具
海南java第二人11 天前
ClickHouse 稀疏索引深度解析:为什么 OLAP 数据库不用 B-Tree?
数据库·clickhouse