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 # 设置日志级别
相关推荐
陈年老古董4 天前
ClickHouse 单机搭建记录
hive·笔记·学习·clickhouse·硬件架构
pjj198548 天前
ClickHouse 与 Doris 数据库技术梳理:看懂分析型数据库
数据库·clickhouse
SelectDB技术团队8 天前
ClickHouse 支持存算分离吗?Doris 社区版原生存算分离怎么落地
数据库·clickhouse·云原生·开源·apache doris·技术选型·存算分层
SelectDB技术团队9 天前
ClickHouse SQL 好学吗?从 MySQL 迁移 Doris 的完整兼容验证
人工智能·sql·mysql·clickhouse·开源·apache doris·增量计算
喵了几个咪10 天前
GoWind UBA 拆解:把 Doris UNIQUE KEY 翻译成 ClickHouse——读数正确性对齐实录
开发语言·后端·clickhouse·微服务·golang·gowind
爱吃火鸡面呀10 天前
MySQL、ClickHouse、Doris、Hive、Spark SQL、Flink SQL 选型对比:优点、缺点与面试话术
hive·mysql·clickhouse
SelectDB技术团队13 天前
SelectDB 架构演进与 ClickHouse 迁移指南
大数据·数据库·clickhouse·云原生·架构·数据分析·apache doris
ClickHouseDB14 天前
使用 ClickHouse 与 Massive 构建实时市场数据应用
clickhouse
秉寒-CHO14 天前
从 ClickHouse 到 StarRocks:我在真实业务中怎么选明细、聚合、主键模型
大数据·clickhouse
IT界的老黄牛15 天前
ClickHouse 运维 SQL 速查:system 表查跑批、内存、合并与磁盘一篇通
大数据·clickhouse·磁盘占用·命令速查·运维排查·system表