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 # 设置日志级别
相关推荐
李兆龙的博客17 小时前
从一到无穷大 #86:ClickHouse 收购 RunReveal——可观测性竞争进入宏观调控阶段
clickhouse
Gain_chance5 天前
大数据毕业设计实战|Data Insight Platform:用 FastAPI + ClickHouse 打造低门槛全链路数据洞察平台
大数据·数据库·clickhouse·毕业设计·fastapi
迷迭香yy8 天前
A股数据本地存储方案对比JSON、SQLite、ClickHouse、DuckDB怎么选 IG50免费开源股票数据API接口
clickhouse·sqlite·json
leisoo80979 天前
本地股票数据深度对比ClickHouse与Parquet存储方案 IG50免费开源股票数据API接口
clickhouse·开源
A.说学逗唱的Coke11 天前
【数据库专题】ClickHouse 深度实战:从列式存储原理到 PB 级海量日志与可观测性分析
数据库·clickhouse·硬件架构
吉甫作诵17 天前
阿里云 ECS 安装 ClickHouse:密码配置、目录迁移与基础调优
大数据·clickhouse
NineData17 天前
NineData Oracle 到 ClickHouse 数据迁移完整流程:结构复制、全量装载、增量同步
数据库·clickhouse·oracle·数据迁移·ninedata·增量同步·数据迁移工具
DB哥讲数据库21 天前
【ClickHouse安装教程】从零开始部署高性能列式数据库(附ClickHouse安装包)
数据库·clickhouse
流烟默21 天前
ClickHouse三种驱动对比分析
clickhouse·驱动对比
zhoupenghui1681 个月前
ClickHouse merge引擎详解以及应用
数据库·clickhouse·merge·mergetree