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 # 设置日志级别
相关推荐
java_logo4 天前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
ClickHouseDB5 天前
TPC-H 成本不到一分钱:ClickHouse Cloud 对比 Snowflake、Databricks、BigQuery 和 Redshift
clickhouse
隔壁阿布都8 天前
ClickHouse完整指南
服务器·数据库·clickhouse
数据库小学妹8 天前
MySQL做报表太慢?引入ClickHouse列式存储,同一个查询快240倍
mysql·clickhouse·列式存储·分析型数据库·向量化执行·olap数据库·mysql对比
ClickHouseDB12 天前
推出 ClickHouse Cloud 中的多阶段分布式查询执行
分布式·clickhouse
weixin_3077791314 天前
Linux下ClickHouse数据仓库故障系统化诊断脚本
linux·运维·clickhouse·自动化·数据库开发
SelectDB技术团队15 天前
Agent 场景动态 JSON 性能拆解:Apache Doris 比 ClickHouse 快 7 倍、比 Elasticsearch 快 2 倍
数据库·clickhouse·elasticsearch·json·apache·日志分析·apache doris
曲幽18 天前
从卡顿到丝滑:FastAPI 调用外部 API 的正确姿势(httpx 实战)
python·fastapi·web·async·httpx·client·await·requests·aiohttp
xhtdj1 个月前
智源大会圆桌大模型没有终局具身智能可能是中国的 AlphaGo 时刻
人工智能·clickhouse·安全·动态规划
xhtdj1 个月前
技术采用曲线回望二十年
运维·数据库·人工智能·clickhouse·动态规划